perm filename DRAFT.XGP[AIM,DBL]1 blob
sn#124713 filedate 1974-10-17 generic text, type T, neo UTF8
/LMAR=0/FONT#0=FIX25/FONT#1=SIGN57/FONT#2=SHD40/FONT#3=BDI25/FONT#4=NGR20/FONT#5=SGN114/FONT#6=FIX20
␈↓ ↓H␈↓␈α?␈α?␈α
␈↓¬ BEINGS:␈↓
␈↓ ↓H␈↓␈α∀␈↓↓REPRESENTATION OF KNOWLEDGE
␈↓ ↓H␈↓↓␈α?␈α?␈α0AS INTERACTING MODULES
␈↓ ↓H␈↓␈α?␈α?␈α?␈α?␈α?␈α?␈α?␈α~␈↓βApplied to Automatic Program Synthesis␈↓
␈↓ ↓H␈↓Fourth Draft: NOT FOR DISTRIBUTION
␈↓ ↓H␈↓␈↓αDOUG LENAT
␈↓ ↓H␈↓αSTANFORD UNIVERSITY
␈↓ ↓H␈↓αARTIFICIAL INTELLIGENCE LABORATORY␈↓
␈↓ ↓H␈↓␈↓↓TABLE OF CONTENTS␈↓
␈↓ ↓H␈↓ 1. Abstract . . . . . . . . . . . . . . . . 1
␈↓ ↓H␈↓ 2. Introduction . . . . . . . . . . . . . . 2
␈↓ ↓H␈↓ 3. Theory: Ideas . . . . . . . . . . . . . 3
␈↓ ↓H␈↓ 4. Reality: Examples . . . . . . . . . . . 9
␈↓ ↓H␈↓ 5. Theory: Design. . . . . . . . . . . . . 14
␈↓ ↓H␈↓ 6. Reality: Examples . . . . . . . . . . . 18
␈↓ ↓H␈↓ 7. Reality: Results . . . . . . . . . . . . 21
␈↓ ↓H␈↓ 8. Theory: Conclusions . . . . . . . . . . 25
␈↓ ↓H␈↓ 9. Acknowledgements . . . . . . . . . . . . 29
␈↓ ↓H␈↓ Appendix 1: BEING parts . . . . . . . . . A1.1
␈↓ ↓H␈↓ Appendix 2: the BEINGs . . . . . . . . . A2.1
␈↓ ↓H␈↓ Appendix 3: BEING usage . . . . . . . . . A3.1
␈↓ ↓H␈↓ Appendix 4: CF program . . . . . . . . . A4.1
␈↓ ↓H␈↓ Appendix 5: the dialogue creating CF . . A5.1
␈↓ ↓H␈↓ Appendix 6: trial running of CF . . . . . A6.1
␈↓ ↓H␈↓ Bibliography . . . . . . . . . . . . . . BIB.1
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓1. ABSTRACT␈↓
␈↓ ↓H␈↓Knowledge␈α∃may␈α∃be␈α∃organized␈α∃as␈α∀a␈α∃community␈α∃of␈α∃interacting␈α∃modules␈α∀(e.g.,
␈↓ ↓H␈↓ACTORS␈α∩[Hewitt]),␈α⊃in␈α∩which␈α∩control␈α⊃also␈α∩resides.␈α⊃ By␈α∩granting␈α∩each␈α⊃module
␈↓ ↓H␈↓a␈α⊂complex␈α⊂structure,␈α⊂yet␈α⊂constraining␈α⊂that␈α⊂that␈α⊂structure␈α⊂be␈α⊂standard␈α⊂over
␈↓ ↓H␈↓all␈α⊂the␈α⊂modules,␈α⊂some␈α⊂new␈α⊂theoretical␈α⊂and␈α⊂experimental␈α⊂results␈α⊂were␈α⊂found.
␈↓ ↓H␈↓The␈α⊂domain␈α⊂of␈α⊂this␈α⊂research␈α⊂was␈α⊂heuristic␈α⊂automatic␈α⊂synthesis␈α⊂of␈α⊂inductive
␈↓ ↓H␈↓inference␈α⊂LISP␈α⊂programs.␈α⊂ Since␈α⊂these␈α⊂modules,␈α⊂called␈α⊂BEINGs,␈α⊂are␈α⊂the␈α⊂only
␈↓ ↓H␈↓entities␈α⊂permitted␈α⊂to␈α⊂exist␈α⊂theoretically,␈α⊂the␈α⊂generated␈α⊂code␈α⊂must␈α⊂also␈α⊂be
␈↓ ↓H␈↓a␈α_community␈α_of␈α_BEINGs.␈α_ Like␈α_the␈α_original␈α_pool,␈α_they␈α_must␈α_be␈α_able␈α_to
␈↓ ↓H␈↓answer␈α⊂questions␈α⊂about␈α⊂themselves␈α⊂as␈α⊂they␈α⊂run.␈α⊂ An␈α⊂experimental␈α⊂system␈α⊂was
␈↓ ↓H␈↓partially␈α⊂implemented.␈α⊂ It␈α⊂synthesized␈α⊂a␈α⊂few␈α⊂programs␈α⊂from␈α⊂very␈α⊂restricted
␈↓ ↓H␈↓dialogues.␈α⊗ Some␈α⊗unexpected␈α⊗problems␈α⊗were␈α⊗encountered,␈α⊗and␈α⊗some␈α⊗aspects
␈↓ ↓H␈↓which␈α∀were␈α∃considered␈α∀ignorable␈α∀seem␈α∃not␈α∀to␈α∀be.␈α∃ The␈α∀performance␈α∃of␈α∀the
␈↓ ↓H␈↓system is discussed, and a preliminary view of BEINGs assessed.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α#page 1␈↓
h
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓2. INTRODUCTION␈↓
␈↓ ↓H␈↓This␈α≠paper␈α≠reports␈α~on␈α≠a␈α≠scheme␈α~for␈α≠representing␈α≠knowledge,␈α~partially
␈↓ ↓H␈↓realized␈α≡in␈α≡an␈α≡experimental␈α∨system␈α≡(PUP6)␈α≡aimed␈α≡at␈α∨generating␈α≡LISP
␈↓ ↓H␈↓programs␈α≠from␈α≠dialogues␈α≠with␈α≤the␈α≠user.␈α≠The␈α≠methods␈α≠employed␈α≤are␈α≠not
␈↓ ↓H␈↓formal,␈α_but␈α_rather␈α_involve␈α_structuring␈α_of␈α_knowledge␈α_about␈α_programming,
␈↓ ↓H␈↓about␈α∪the␈α∪task␈α∩domain,␈α∪and␈α∪about␈α∩transfer␈α∪of␈α∪control.␈α∩ To␈α∪date,␈α∪PUP6␈α∩has
␈↓ ↓H␈↓synthesized␈α≡three␈α≡significantly␈α≥different␈α≡target␈α≡programs:␈α≡a␈α≥concept
␈↓ ↓H␈↓formation␈α⊂program␈α⊂(similar␈α⊂to␈α⊂[Winston]),␈α⊂a␈α⊂grammatical␈α⊂inference␈α⊂program,
␈↓ ↓H␈↓and␈α⊗a␈α↔simple␈α⊗information␈α↔storage␈α⊗and␈α⊗retrieval␈α↔system␈α⊗(referred␈α↔to␈α⊗as,
␈↓ ↓H␈↓respectively,␈α→CF,␈α→GI,␈α→and␈α→INF).␈α→ Specification␈α→is␈α→via␈α→rigid,␈α_extended
␈↓ ↓H␈↓dialogues␈α⊂carried␈α⊂on␈α⊂with␈α⊂the␈α⊂user,␈α⊂in␈α⊂a␈α⊂small␈α⊂subset␈α⊂of␈α⊂English,␈α⊂in␈α⊂which
␈↓ ↓H␈↓the␈α≤task␈α≥is␈α≤delineated␈α≥and␈α≤questionable␈α≥details␈α≤are␈α≥discussed.␈α≤ The
␈↓ ↓H␈↓specification␈α⊗is␈α⊗partial,␈α⊗and␈α⊗the␈α⊗system␈α⊗makes␈α⊗assumptions␈α⊗continually.
␈↓ ↓H␈↓This␈α_is␈α_what␈α_is␈α_meant,␈α_in␈α_the␈α_sequel,␈α_by␈α_␈↓βAutomatic␈α_Programming.␈α_ Target
␈↓ ↓H␈↓βprogram␈↓␈α⊂will␈α⊃refer␈α⊂to␈α⊂code␈α⊃which␈α⊂has␈α⊂been␈α⊃successfully␈α⊂generated␈α⊂by␈α⊃such␈α⊂a
␈↓ ↓H␈↓system.␈α↔ ␈↓βDialogue␈↓␈α↔is␈α↔the␈α↔interactive␈α↔communication␈α↔between␈α↔the␈α↔user␈α⊗and
␈↓ ↓H␈↓the automatic programming system, which results in target code synthesis.
␈↓ ↓H␈↓The␈α⊗CF␈α↔target␈α⊗program␈α↔was␈α⊗cleanly␈α⊗specified,␈α↔an␈α⊗annotated␈α↔protocol␈α⊗was
␈↓ ↓H␈↓done,␈α⊗and␈α⊗the␈α⊗BEINGs␈α⊗needed␈α∃to␈α⊗reproduce␈α⊗the␈α⊗reasoning␈α⊗present␈α⊗in␈α∃that
␈↓ ↓H␈↓protocol␈α≠were␈α≠fasioned.␈α≠Additions␈α≤were␈α≠made␈α≠to␈α≠PUP6␈α≠before␈α≤it␈α≠could
␈↓ ↓H␈↓synthesize GI or INF.
␈↓ ↓H␈↓The␈α⊂main␈α⊂successes␈α⊂of␈α⊂the␈α⊂experiment␈α⊂were␈α⊂that␈α⊂the␈α⊂desired␈α⊂reasoning␈α⊂steps
␈↓ ↓H␈↓in␈α⊃the␈α∩original␈α⊃protocol␈α∩were␈α⊃actually␈α∩simulated,␈α⊃most␈α∩of␈α⊃the␈α∩BEINGs␈α⊃were
␈↓ ↓H␈↓used␈α∀in␈α∀writing␈α∀more␈α∀than␈α∀one␈α∀of␈α∀the␈α∀programs,␈α∀and␈α∀the␈α∀synthesized␈α∀code
␈↓ ↓H␈↓could␈α⊂be␈α⊂interrupted␈α⊂and␈α⊂asked␈α⊂a␈α⊂few␈α⊂kinds␈α⊂of␈α⊂questions.␈α⊂ The␈α⊂main␈α⊂defects
␈↓ ↓H␈↓were␈α∪the␈α∪inflexibility␈α∪of␈α∪the␈α∪system␈α∪to␈α∪new␈α∪dialogues,␈α∪the␈α∪inability␈α∩for
␈↓ ↓H␈↓the␈α≤user␈α≥to␈α≤add␈α≥new,␈α≤high-level,␈α≥domain-specific␈α≤knowledge,␈α≥and␈α≤the
␈↓ ↓H␈↓verbosity␈α~of␈α~the␈α~system.␈α~ Some␈α≠of␈α~these␈α~problems␈α~may␈α~arise␈α≠from␈α~the
␈↓ ↓H␈↓annotated␈α⊂protocol␈α⊂technique␈α⊂employed␈α⊂to␈α⊂get␈α⊂the␈α⊂BEINGs␈α⊂initially,␈α⊂and␈α⊂not
␈↓ ↓H␈↓from anything inherent to the BEINGs representation.
␈↓ ↓H␈↓Our␈α⊗treatment␈α↔will␈α⊗follow␈α↔these␈α⊗lines:␈α⊗First,␈α↔the␈α⊗ideas␈α↔are␈α⊗presented,
␈↓ ↓H␈↓including␈α"a␈α"discussion␈α"of␈α!BEINGs.␈α" Examples␈α"are␈α"then␈α"provided␈α!to
␈↓ ↓H␈↓illustrate␈α∩these␈α∩concepts.␈α∩The␈α∩next␈α∩section␈α∩describes␈α∩the␈α∩implementation,
␈↓ ↓H␈↓and␈α≥explains␈α≥the␈α≥choice␈α≥of␈α≤targets.␈α≥ Only␈α≥then␈α≥will␈α≥performance␈α≤be
␈↓ ↓H␈↓evaluated.␈α∃ From␈α⊗the␈α∃experience␈α∃with␈α⊗PUP6␈α∃are␈α∃drawn␈α⊗several␈α∃preliminary
␈↓ ↓H␈↓conclusions␈α∩about␈α⊃both␈α∩the␈α∩utility␈α⊃of␈α∩the␈α⊃BEINGs␈α∩representation␈α∩and␈α⊃about
␈↓ ↓H␈↓problems relevant to Automatic Programming.
␈↓ ↓H␈↓The␈α~appendices␈α~present␈α~further␈α~details,␈α~samples,␈α~and␈α~examples.␈α~ First
␈↓ ↓H␈↓comes␈α∀a␈α∀description␈α∀of␈α∀each␈α∀BEING␈α∀part,␈α∀then␈α∀a␈α∀summary␈α∀of␈α∀the␈α∀knowledge
␈↓ ↓H␈↓contained␈α⊃in␈α⊃each␈α⊃BEING.␈α∩ Appendix␈α⊃3␈α⊃is␈α⊃a␈α∩table␈α⊃of␈α⊃data␈α⊃recording␈α∩how␈α⊃the
␈↓ ↓H␈↓BEING␈α∩community␈α∩interacts.␈α∩The␈α⊃final␈α∩appendices␈α∩present␈α∩excerpts␈α∩from␈α⊃the
␈↓ ↓H␈↓CF program, from PUP6 synthesizing CF, and from CF itself running.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 2␈↓
h
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓3. THEORY: IDEAS␈↓
␈↓ ↓H␈↓How␈α⊂should␈α⊂knowledge␈α⊂be␈α⊂represented?␈α⊂ Many␈α⊂researchers␈α⊂feel␈α⊂that␈α⊂a␈α⊂simple,
␈↓ ↓H␈↓uniform␈α∩formalism␈α⊃should␈α∩be␈α∩used␈α⊃for␈α∩all␈α⊃facts;␈α∩others␈α∩disagree,␈α⊃claiming
␈↓ ↓H␈↓that␈α≠complexity␈α≠of␈α~behavior␈α≠both␈α≠justifies␈α~and␈α≠demands␈α≠complexity␈α~of
␈↓ ↓H␈↓representation.␈α≡ The␈α≡BEINGs␈α≡concept␈α≡may␈α≡resolve␈α≡this␈α≡uniformity␈α≡vs.
␈↓ ↓H␈↓structure␈α≥controversy;␈α≥at␈α≥the␈α≥least,␈α≤it␈α≥is␈α≥a␈α≥compromise.␈α≥ One␈α≤must
␈↓ ↓H␈↓recognize␈α∃the␈α⊗advantages␈α∃of␈α∃each␈α⊗side,␈α∃and␈α∃refuse␈α⊗to␈α∃give␈α∃them␈α⊗up.␈α∃The
␈↓ ↓H␈↓benefits␈α⊗of␈α↔the␈α⊗former␈α↔include␈α⊗easy␈α⊗addition␈α↔of␈α⊗knowledge␈α↔[Newell]␈α⊗and
␈↓ ↓H␈↓simple,␈α⊂aesthetic␈α⊂methods␈α⊂for␈α⊂combining␈α⊂information␈α⊂[McCarthy].␈α⊂Structure,
␈↓ ↓H␈↓however,␈α≠is␈α≠necessary␈α≤for␈α≠(␈↓βcombinatorially␈↓)␈α≠efficient␈α≠handling␈α≤of␈α≠large
␈↓ ↓H␈↓amounts␈α∪of␈α∪data␈α∪[MIT].␈α∪ PUP6␈α∪integrates␈α∪these␈α∪two␈α∪ideas␈α∪into␈α∪the␈α∩concept
␈↓ ↓H␈↓of␈α≤BEINGs.␈α≤A␈α≤BEING␈α≤is␈α≤a␈α≤collection␈α≤of␈α≤about␈α≤thirty␈α≤little␈α≤bits␈α≤of
␈↓ ↓H␈↓INTERLISP␈α→[Teitelman]␈α→code;␈α→the␈α→answers␈α→to␈α→thirty␈α→questions␈α→about␈α_the
␈↓ ↓H␈↓BEING.␈α∪ That␈α∪is,␈α∩a␈α∪BEING␈α∪is␈α∩a␈α∪small,␈α∪loosely-knit␈α∩LISP␈α∪program,␈α∪which␈α∩is
␈↓ ↓H␈↓considered␈α→equivalent␈α→to␈α→its␈α→answers␈α→to␈α→these␈α→fixed␈α→questions.␈α_ Every
␈↓ ↓H␈↓scrap␈α⊃of␈α∩knowledge,␈α⊃every␈α∩bit␈α⊃of␈α∩control␈α⊃structure␈α∩should␈α⊃be␈α∩encoded␈α⊃into
␈↓ ↓H␈↓BEINGs.␈α∀There␈α∃should␈α∀be␈α∀nothing␈α∃else␈α∀in␈α∀the␈α∃system␈α∀but␈α∃this␈α∀interacting
␈↓ ↓H␈↓community.
␈↓ ↓H␈↓PUP6␈α⊗embodies␈α⊗only␈α⊗some␈α⊗of␈α∃the␈α⊗ideas␈α⊗and␈α⊗constraints␈α⊗discussed␈α⊗in␈α∃this
␈↓ ↓H␈↓section.␈α" For␈α"example,␈α"economy␈α"demanded␈α"some␈α"very␈α"fast␈α"auxilliary
␈↓ ↓H␈↓functions,␈α&demons,␈α&and␈α&pure␈α&data␈α&structures.␈α& These␈α&reduced␈α&the
␈↓ ↓H␈↓computation␈α~time␈α~by␈α~a␈α~constant␈α≠factor␈α~(about␈α~ten),␈α~by␈α~saving␈α≠on␈α~the
␈↓ ↓H␈↓overhead␈α∪implicit␈α∪in␈α∩each␈α∪call␈α∪to␈α∩a␈α∪BEING;␈α∪they␈α∩did␈α∪not␈α∪therefore␈α∩reduce
␈↓ ↓H␈↓the␈α↔␈↓βcombinatorial␈↓␈α↔effort␈α⊗involved.␈α↔This␈α↔will␈α⊗be␈α↔explained␈α↔in␈α↔the␈α⊗REALITY
␈↓ ↓H␈↓section,␈α↔along␈α↔with␈α_any␈α↔other␈α↔deviations␈α↔of␈α_PUP6␈α↔from␈α↔an␈α_ideal␈α↔BEINGs
␈↓ ↓H␈↓community.
␈↓ ↓H␈↓Notice␈α~that␈α→while␈α~each␈α~BEING␈α→is␈α~highly␈α→structured,␈α~this␈α~structure␈α→is
␈↓ ↓H␈↓standard␈α∪over␈α∪the␈α∩entire␈α∪pool.␈α∪Each␈α∩BEING␈α∪part␈α∪is␈α∩itself␈α∪a␈α∪little␈α∩BEING,
␈↓ ↓H␈↓etc.,␈α∀and␈α∀this␈α∀infinite␈α∀regress␈α∀stops␈α∀when␈α∀the␈α∀contents␈α∀of␈α∀a␈α∀BEING␈α∀part
␈↓ ↓H␈↓becomes␈α↔sufficiently␈α↔primitive.␈α↔As␈α↔will␈α↔be␈α↔discussed␈α↔later,␈α_the␈α↔BEINGs
␈↓ ↓H␈↓mimic␈α⊂a␈α⊂human␈α⊂programmer;␈α⊂whatever␈α⊂he␈α⊂considers␈α⊂primitive␈α⊂when␈α⊂writing␈α⊂the
␈↓ ↓H␈↓program,BEINGs␈α∩may␈α∩consider␈α∩primitive.␈α⊃ Typically␈α∩this␈α∩level␈α∩is␈α∩about␈α⊃the
␈↓ ↓H␈↓same␈α≠as␈α≠the␈α≠INTERLISP␈α≤[Teitelman]␈α≠language:␈α≠a␈α≠primitive␈α≠is␈α≤a␈α≠single
␈↓ ↓H␈↓INTERLISP␈α∪function␈α∪call,␈α∪or␈α∀a␈α∪few␈α∪simple␈α∪ones␈α∪connected␈α∀trivially.␈α∪ Each
␈↓ ↓H␈↓BEING␈α∀is␈α∀cognizant␈α∪of␈α∀the␈α∀set␈α∪of␈α∀thirty␈α∀questions,␈α∪in␈α∀the␈α∀sense␈α∀that␈α∪in
␈↓ ↓H␈↓answering␈α∪one␈α∪of␈α∩them␈α∪it␈α∪may␈α∩freely␈α∪ask␈α∪questions␈α∩of␈α∪other␈α∪BEINGs␈α∩(often
␈↓ ↓H␈↓through␈α∩nondeterministic␈α∩goal␈α∩statements.)␈α⊃A␈α∩few␈α∩of␈α∩the␈α∩BEING-PARTS␈α⊃might
␈↓ ↓H␈↓be:␈α⊃what␈α⊃is␈α⊃your␈α⊃basic␈α⊃idea␈α∩and␈α⊃purpose,␈α⊃what␈α⊃effects␈α⊃do␈α⊃you␈α⊃have,␈α∩how␈α⊃do
␈↓ ↓H␈↓you␈α↔go␈α↔about␈α⊗causing␈α↔them,␈α↔what␈α⊗must␈α↔be␈α↔ensured␈α⊗before␈α↔you␈α↔begin,␈α⊗how
␈↓ ↓H␈↓complicated␈α∀are␈α∃you,␈α∀what␈α∀is␈α∃your␈α∀chance␈α∀of␈α∃success,␈α∀are␈α∃you␈α∀recursive,
␈↓ ↓H␈↓whom␈α∪else␈α∪might␈α∪you␈α∪transfer␈α∪control␈α∪to,␈α∪what␈α∪alternatives␈α∪to␈α∪you␈α∩exist,
␈↓ ↓H␈↓what␈α∪BEINGs␈α∪are␈α∩a␈α∪little␈α∪more/less␈α∩general␈α∪than␈α∪you␈α∩are,␈α∪do␈α∪you␈α∩evaluate
␈↓ ↓H␈↓your␈α∃arguments,␈α∃what␈α∃is␈α∃the␈α∃nature␈α∃of␈α∃the␈α∃value␈α∃you␈α∃return,␈α∃why␈α∃do␈α∀you
␈↓ ↓H␈↓exist,␈α∩why␈α∩do␈α∩you␈α∩want␈α∩to␈α∩be␈α∪in␈α∩control␈α∩now,␈α∩etc.␈α∩The␈α∩reader␈α∩may␈α∪wish␈α∩to
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 3␈↓ OTHEORY: IDEAS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓glance␈α∀at␈α∀Appendix␈α∀1,␈α∀to␈α∀see␈α∀the␈α∀particular␈α∀set␈α∀of␈α∀questions␈α∀which␈α∀were
␈↓ ↓H␈↓actually␈α⊃settled␈α∩upon.␈α⊃ When␈α⊃he␈α∩feels␈α⊃the␈α⊃urge␈α∩for␈α⊃a␈α⊃concrete␈α∩example,␈α⊃he
␈↓ ↓H␈↓should glance over pages 8-11 and Appendices 4 and 5.
␈↓ ↓H␈↓The␈α→BEINGs␈α→control␈α_themselves␈α→in␈α→a␈α→simple␈α_way.␈α→A␈α→very␈α→general␈α_BEING,
␈↓ ↓H␈↓SERVE_THE_USER,␈α∃has␈α∀control␈α∃initially.␈α∀In␈α∃general,␈α∀some␈α∃BEING␈α∀␈↓βB␈↓␈α∃will␈α∀be
␈↓ ↓H␈↓in␈α∃control.␈α∃ Its␈α∃BEING␈α∃parts␈α∀are␈α∃assembled␈α∃into␈α∃an␈α∃executable␈α∀function,
␈↓ ↓H␈↓and␈α∪it␈α∪is␈α∪run.␈α∀ During␈α∪the␈α∪course␈α∪of␈α∪its␈α∀reign,␈α∪␈↓βB␈↓␈α∪will␈α∪want␈α∀things␈α∪done
␈↓ ↓H␈↓and/or␈α⊃tested␈α∩which␈α⊃it␈α∩cannot␈α⊃manage␈α∩by␈α⊃itself.␈α∩ This␈α⊃corresponds␈α∩to␈α⊃when
␈↓ ↓H␈↓a␈α∪normal␈α∪program␈α∪needs␈α∀to␈α∪call␈α∪a␈α∪subroutine.␈α∪ What␈α∀␈↓βB␈↓␈α∪does␈α∪is␈α∪to␈α∀call␈α∪on
␈↓ ↓H␈↓SATISFY␈α~by␈α→name,␈α~supplying␈α~a␈α→description␈α~of␈α→what␈α~is␈α~wanted.␈α→ SATISFY
␈↓ ↓H␈↓assembles␈α⊂itself,␈α⊂asks␈α⊂the␈α⊂entire␈α⊂BEING␈α⊂pool␈α⊂"who␈α⊂can␈α⊂do␈α⊂this␈α⊂thing?",␈α⊂and
␈↓ ↓H␈↓collects␈α⊂a␈α⊂list␈α⊂of␈α⊂the␈α⊂reponders.␈α⊂ SATISFY␈α⊂then␈α⊂calls␈α⊂CHOOSE_FROM␈α⊂by␈α⊂name,
␈↓ ↓H␈↓supplying␈α⊃this␈α∩list␈α⊃and␈α∩the␈α⊃original␈α∩request.␈α⊃Each␈α∩responder␈α⊃is␈α∩asked␈α⊃why
␈↓ ↓H␈↓he␈α∩should␈α∩be␈α∩allowed␈α∩to␈α∩go␈α∩now␈α∪(the␈α∩WHEN␈α∩part)␈α∩and␈α∩how␈α∩costly␈α∩he␈α∪will␈α∩be
␈↓ ↓H␈↓if␈α↔he␈α↔does␈α⊗go␈α↔(the␈α↔COMPLEXITY␈α⊗part.)␈α↔The␈α↔best␈α⊗responder␈α↔BEING␈α↔is␈α⊗then
␈↓ ↓H␈↓passed␈α⊃control.␈α∩If␈α⊃he␈α∩succeeds␈α⊃in␈α∩his␈α⊃mission,␈α∩SATISFY␈α⊃returns␈α∩control␈α⊃to
␈↓ ↓H␈↓␈↓βB␈↓.␈α~Otherwise␈α~the␈α~remaining␈α~responders␈α~are␈α~compared␈α~and␈α~a␈α~new␈α~one␈α→is
␈↓ ↓H␈↓tried.␈α∩If␈α∩they␈α∩all␈α∩fail,␈α∩then␈α∩SATISFY␈α⊃tells␈α∩␈↓βB␈↓␈α∩that␈α∩it␈α∩has␈α∩failed.␈α∩␈↓βB␈↓␈α⊃then
␈↓ ↓H␈↓decides␈α∀whether␈α∀to␈α∀try␈α∀something␈α∀else␈α∀or␈α∀to␈α∀fail␈α∀itself.␈α∀In␈α∀addition␈α∀to
␈↓ ↓H␈↓these␈α⊂goal␈α⊂statements,␈α⊂there␈α⊂exists␈α⊂a␈α⊂"world"␈α⊂consisting␈α⊂of␈α⊂assertions␈α⊂and
␈↓ ↓H␈↓variables␈α_with␈α_values.␈α_These␈α_are␈α_regarded␈α_as␈α_trivial␈α_cases␈α_of␈α_BEINGs,
␈↓ ↓H␈↓possessing␈α∪only␈α∀one␈α∪part.␈α∀ So␈α∪␈↓βB␈↓␈α∀may␈α∪also␈α∀query␈α∪this␈α∀data␈α∪base␈α∀by␈α∪saying
␈↓ ↓H␈↓"what␈α→assertions␈α→match␈α_this␈α→one...",␈α→or␈α→by␈α_asking␈α→"what␈α→is␈α→the␈α_value
␈↓ ↓H␈↓of...".␈α∪ These␈α∪actions␈α∪can␈α∪be␈α∪programmed␈α∪in␈α∪a␈α∪much␈α∪more␈α∪efficient␈α∩manner
␈↓ ↓H␈↓than as BEINGs.
␈↓ ↓H␈↓Theory␈α≠would␈α≠indicate␈α≠that␈α≤BEINGs␈α≠must␈α≠be␈α≠assembled␈α≠by␈α≤other␈α≠BEINGs
␈↓ ↓H␈↓dynamically.␈α⊃In␈α∩practice,␈α⊃the␈α∩way␈α⊃a␈α∩BEING's␈α⊃parts␈α∩fit␈α⊃together␈α∩is␈α⊃uniform
␈↓ ↓H␈↓over␈α∪all␈α∪the␈α∩BEINGs␈α∪at␈α∪all␈α∩times.␈α∪Thus␈α∪one␈α∩simple␈α∪function␈α∪(or␈α∩assembled
␈↓ ↓H␈↓BEING)␈α⊗can␈α↔assemble␈α⊗all␈α↔the␈α⊗BEINGs␈α⊗initially␈α↔into␈α⊗LISP␈α↔functions.␈α⊗ The
␈↓ ↓H␈↓precise algorithm for doing this is discussed in the next section.
␈↓ ↓H␈↓BEINGs␈α⊗are␈α↔the␈α⊗only␈α↔entities␈α⊗permitted␈α⊗(theoretically)␈α↔to␈α⊗exist␈α↔in␈α⊗our
␈↓ ↓H␈↓system;␈α∩ergo␈α∪all␈α∩our␈α∪code␈α∩must␈α∪be␈α∩written␈α∪as␈α∩BEINGs,␈α∪and␈α∩must␈α∪be␈α∩written
␈↓ ↓H␈↓by BEINGs.
␈↓ ↓H␈↓An␈α∃obvious␈α∀but␈α∃crucial␈α∀consequence␈α∃is␈α∀that␈α∃␈↓βsome␈↓␈α∀BEING(s)␈α∃must␈α∃write␈α∀new
␈↓ ↓H␈↓BEINGs.␈α⊗ The␈α⊗idea␈α⊗is␈α∃that␈α⊗the␈α⊗BEING␈α⊗who␈α∃knows␈α⊗about␈α⊗␈↓βX␈↓␈α⊗takes␈α⊗charge␈α∃of
␈↓ ↓H␈↓generating␈α∃BEINGs␈α⊗relating␈α∃to␈α∃␈↓βX␈↓.␈α⊗ For␈α∃example,␈α∃the␈α⊗INSERT␈α∃BEING␈α⊗can␈α∃do
␈↓ ↓H␈↓inserting␈α∨by␈α∨one␈α≡of␈α∨a␈α∨few␈α≡algorithms,␈α∨and␈α∨he␈α≡can␈α∨also␈α∨write␈α≡(by
␈↓ ↓H␈↓specializing␈α↔himself)␈α↔more␈α↔specific␈α↔insert␈α↔routines,␈α↔and␈α↔he␈α_can␈α↔answer
␈↓ ↓H␈↓questions␈α⊗about␈α↔inserting.␈α⊗This␈α↔idea␈α⊗is␈α⊗analogous␈α↔to␈α⊗any␈α↔reliance␈α⊗upon
␈↓ ↓H␈↓experts␈α≠(e.g.,␈α≠[Feigenbaum]),␈α~and␈α≠also␈α≠reemphasizes␈α~the␈α≠theme␈α≠of␈α~any
␈↓ ↓H␈↓modular representation of knowledge.
␈↓ ↓H␈↓A␈α∃second␈α∃consequence␈α∃is␈α∃that␈α∃the␈α∀output␈α∃code␈α∃will␈α∃have␈α∃all␈α∃the␈α∃␈↓βtypes␈↓␈α∀of
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 4␈↓ OTHEORY: IDEAS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓"intelligence"␈α∃that␈α∃any␈α∃BEING␈α∃community␈α∀has:␈α∃it␈α∃can␈α∃write␈α∃variations␈α∀of
␈↓ ↓H␈↓itself,␈α≠modify␈α≠itself␈α~according␈α≠to␈α≠the␈α~user's␈α≠complaints,␈α≠and␈α~answer
␈↓ ↓H␈↓questions␈α⊂about␈α⊂what␈α⊂it␈α⊂is␈α⊂doing␈α⊂as␈α⊂it␈α⊂runs.␈α⊂ The␈α⊂specialized␈α⊂code␈α⊂cannot,
␈↓ ↓H␈↓of␈α⊂course,␈α⊂write␈α⊂the␈α⊂full␈α⊂complement␈α⊂of␈α⊂programs␈α⊂the␈α⊂original␈α⊂system␈α⊂could
␈↓ ↓H␈↓write.
␈↓ ↓H␈↓In␈α⊗a␈α∃similar␈α⊗vein,␈α∃␈↓βsome␈↓␈α⊗BEING(s)␈α∃must␈α⊗do␈α∃the␈α⊗translation␈α∃of␈α⊗the␈α∃users'
␈↓ ↓H␈↓quasi-English␈α⊃inputs␈α⊃into␈α⊃BEING-usable␈α⊃form.␈α⊃␈↓&Each␈↓'β␈α⊃BEING␈α⊃␈↓βX␈↓␈α⊃is␈α∩charged␈α⊃with
␈↓ ↓H␈↓recognizing␈α∪English␈α∪related␈α∪to␈α∪␈↓βX␈↓.␈α∪ Thus␈α∪translation␈α∪consists␈α∪of␈α∪querying
␈↓ ↓H␈↓"who␈α→can␈α→recognize␈α_..."␈α→and␈α→waiting␈α→for␈α_a␈α→response.␈α→For␈α→example,␈α_our
␈↓ ↓H␈↓INSERT␈α∩BEING␈α∩must␈α∩also␈α⊃recognize␈α∩and␈α∩process␈α∩phrases␈α∩involving␈α⊃inserting,
␈↓ ↓H␈↓stack-pushing, and merging.
␈↓ ↓H␈↓A␈α↔result␈α↔of␈α_this␈α↔treatment␈α↔of␈α↔natural␈α_language␈α↔processing␈α↔is␈α_that␈α↔any
␈↓ ↓H␈↓phrase␈α∃which␈α⊗can␈α∃be␈α∃translated␈α⊗can␈α∃be␈α∃acted␈α⊗upon,␈α∃and␈α∃any␈α⊗phrase␈α∃which
␈↓ ↓H␈↓can't␈α⊂be␈α⊃translated␈α⊂probably␈α⊂␈↓βcan't␈↓␈α⊃be␈α⊂acted␈α⊂upon␈α⊃(even␈α⊂if␈α⊂it␈α⊃is␈α⊂rephrased).
␈↓ ↓H␈↓Since␈α~patterns␈α~are␈α~used,␈α~if␈α≠the␈α~global␈α~structure␈α~of␈α~the␈α≠sentence␈α~is
␈↓ ↓H␈↓recognized,␈α∃then␈α⊗the␈α∃user␈α∃need␈α⊗only␈α∃be␈α∃asked␈α⊗to␈α∃clear␈α∃up␈α⊗the␈α∃difficult
␈↓ ↓H␈↓sub-parts.
␈↓ ↓H␈↓Three␈α_constraints␈α_are␈α_present␈α_which␈α_reflect␈α_new␈α_biasses␈α_more␈α_than␈α_new
␈↓ ↓H␈↓insights:␈α≠one␈α≠need␈α~not␈α≠feel␈α≠any␈α~reverence␈α≠toward␈α≠the␈α~anthropomorphic
␈↓ ↓H␈↓paradigm␈α∀of␈α∪programming␈α∀(ignore␈α∪details,␈α∀catch␈α∪them␈α∀later␈α∀by␈α∪debugging).
␈↓ ↓H␈↓Programming␈α⊃decisions␈α∩continually␈α⊃crop␈α∩up␈α⊃which␈α∩the␈α⊃system␈α∩is␈α⊃not␈α∩able␈α⊃to
␈↓ ↓H␈↓resolve␈α∪at␈α∪the␈α∪time.␈α∪The␈α∪BEINGs␈α∪system␈α∪should␈α∪always␈α∪spend␈α∪a␈α∩significant
␈↓ ↓H␈↓effort␈α↔deferring␈α↔the␈α_decision␈α↔as␈α↔long␈α↔as␈α_possible.␈α↔ When,␈α↔at␈α_last,␈α↔no
␈↓ ↓H␈↓progress␈α∀can␈α∀be␈α∀made␈α∀without␈α∀its␈α∀resolution,␈α∀and␈α∀if␈α∀the␈α∀system␈α∀is␈α∀still
␈↓ ↓H␈↓unsure,␈α↔then␈α↔either␈α_the␈α↔user␈α↔settles␈α↔the␈α_question␈α↔or␈α↔else␈α_a␈α↔backtrack
␈↓ ↓H␈↓point␈α is␈α reluctantly␈α set␈α up.␈α But␈α often,␈α by␈α this␈α time,␈α some␈α new
␈↓ ↓H␈↓information␈α∪is␈α∪present␈α∪which␈α∀enables␈α∪the␈α∪system␈α∪to␈α∪resolve␈α∀the␈α∪decision,
␈↓ ↓H␈↓thus␈α~reducing␈α~the␈α~amount␈α~of␈α≠backtracking.␈α~ If␈α~there␈α~are␈α~two␈α≠or␈α~more
␈↓ ↓H␈↓decisions␈α∀which␈α∃can␈α∀no␈α∀longer␈α∃be␈α∀deferred,␈α∀the␈α∃system␈α∀tackles␈α∃first␈α∀the
␈↓ ↓H␈↓one estimated to be the easiest (Occam's razor).
␈↓ ↓H␈↓The␈α∩final␈α∪bit␈α∩of␈α∪philosophy␈α∩is␈α∪that␈α∩most␈α∪of␈α∩the␈α∪carelessness␈α∩bugs␈α∪can␈α∩be
␈↓ ↓H␈↓eliminated␈α∀through␈α∀this␈α∀deferral,␈α∀feed-forward,␈α∀and␈α∀very␈α∀precise␈α∀record-
␈↓ ↓H␈↓keeping.␈α& Humans␈α&depend␈α&on␈α&their␈α&adaptability␈α&to␈α&compensate␈α&for
␈↓ ↓H␈↓limitations␈α⊂in␈α⊂their␈α⊂brain␈α⊂hardware␈α⊂(long␈α⊂write␈α⊂times␈α⊂for␈α⊂long-term␈α⊂memory
␈↓ ↓H␈↓and␈α⊂external␈α⊂memory,␈α⊂and␈α⊂limited␈α⊂short-term␈α⊂memory␈α⊂size␈α⊂force␈α⊂us␈α⊂to␈α⊂ignore
␈↓ ↓H␈↓details;␈α∃see␈α∀[Newell])␈α∃but␈α∀there␈α∃is␈α∀no␈α∃need␈α∀for␈α∃an␈α∃␈↓βautomatic␈↓␈α∀programming
␈↓ ↓H␈↓system␈α⊂to␈α⊂do␈α⊂so.␈α⊂ For␈α⊂example,␈α⊂when␈α⊂a␈α⊂list␈α⊂structure␈α⊂is␈α⊂first␈α⊂encountered,
␈↓ ↓H␈↓the␈α⊂system␈α⊂records␈α⊂warnings␈α⊂that␈α⊂it␈α⊂is␈α⊂undefined,␈α⊂no␈α⊂accesses,␈α⊂insertions,
␈↓ ↓H␈↓or␈α⊃deletions␈α∩have␈α⊃been␈α⊃observed,␈α∩and␈α⊃so␈α⊃on.␈α∩ Each␈α⊃such␈α⊃worry␈α∩is␈α⊃weighted,
␈↓ ↓H␈↓and␈α⊂periodically␈α⊂the␈α⊂system␈α⊂resolves␈α⊂such␈α⊂warning␈α⊂notes␈α⊂--␈α⊂especially␈α⊂near
␈↓ ↓H␈↓the completion of the target program.
␈↓ ↓H␈↓The␈α∃BEINGs␈α∀representation␈α∃is␈α∃suitable␈α∀for␈α∃simulating␈α∀any␈α∃complex␈α∃task␈α∀␈↓βT␈↓
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 5␈↓ OTHEORY: IDEAS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓involving␈α∩frequent␈α∩small␈α∩interventions␈α⊃by␈α∩various␈α∩experts.␈α∩In␈α∩addition␈α⊃to
␈↓ ↓H␈↓writing␈α_programs,␈α_this␈α_activity␈α_could␈α_be␈α_as␈α_diverse␈α_as␈α_playing␈α_chess,
␈↓ ↓H␈↓running␈α%a␈α$business,␈α%simulating␈α$physical␈α%interactions,␈α%and␈α$playing
␈↓ ↓H␈↓volleyball.␈α⊗ For␈α↔the␈α⊗latter␈α↔task,␈α⊗a␈α⊗BEINGs-based␈α↔system␈α⊗might␈α↔create␈α⊗a
␈↓ ↓H␈↓specialized␈α≤BEING␈α≥for␈α≤each␈α≥player,␈α≤perhaps␈α≥with␈α≤a␈α≥complexity␈α≤vector
␈↓ ↓H␈↓indicating␈α∃his␈α∃abilities,␈α∃reflexes,␈α∃etc.␈α∀ The␈α∃BEING␈α∃in␈α∃control␈α∃would␈α∀be
␈↓ ↓H␈↓the␈α∩player␈α⊃hitting␈α∩the␈α∩ball.␈α⊃A␈α∩specialized␈α⊃Choose-from␈α∩BEING␈α∩would␈α⊃decide
␈↓ ↓H␈↓who␈α∃goes␈α∃next,␈α∃occasionally␈α∃interpreting␈α∀a␈α∃tie␈α∃between␈α∃BEINGs␈α∃vying␈α∀for
␈↓ ↓H␈↓control as a collision on the court.
␈↓ ↓H␈↓There␈α⊂is␈α⊂one␈α⊂particular␈α⊂bias␈α⊂of␈α⊂BEINGs␈α⊂toward␈α⊂writing␈α⊂high-level␈α⊂programs,
␈↓ ↓H␈↓over␈α∀other␈α∃activities.␈α∀The␈α∀new␈α∃BEINGs␈α∀created␈α∀during␈α∃the␈α∀execution␈α∃of␈α∀a
␈↓ ↓H␈↓specified␈α⊃task␈α∩are␈α⊃kept␈α⊃distinct␈α∩from␈α⊃the␈α⊃original␈α∩set␈α⊃of␈α⊃BEINGs.␈α∩ Then␈α⊃a
␈↓ ↓H␈↓␈↓βprogram␈↓␈α∃for␈α∃task␈α∃␈↓βT␈↓␈α∃is␈α∃accomplished␈α∃by␈α∃doing␈α∃␈↓βT␈↓␈α∃and␈α∃then␈α∃dumping␈α∃the␈α∀new
␈↓ ↓H␈↓BEINGs␈α⊂out␈α⊂onto␈α⊂a␈α⊂new␈α⊂file.␈α⊂ The␈α⊂entire␈α⊂old␈α⊂BEINGs␈α⊂pool␈α⊂is␈α⊂then␈α⊂treated␈α⊂as
␈↓ ↓H␈↓the␈α∪language␈α∪supporting␈α∪this␈α∀file.␈α∪As␈α∪a␈α∪corollary,␈α∪asking␈α∀a␈α∪BEINGs-based
␈↓ ↓H␈↓system to write any subset of itself is the null task!
␈↓ ↓H␈↓Most␈α programmers␈α intentionally␈α augment␈α their␈α code␈α to␈α aid␈α in␈α later
␈↓ ↓H␈↓debugging,␈α≡modification,␈α≡and␈α≡readability␈α≡by␈α≡humans.␈α≡ These␈α≡aids␈α≡are
␈↓ ↓H␈↓typically␈α comments,␈α summaries,␈α over-generalized␈α subroutines,␈α optional
␈↓ ↓H␈↓print␈α∃statements,␈α⊗and␈α∃runtime␈α∃statistics.␈α⊗ The␈α∃structure␈α∃of␈α⊗the␈α∃program
␈↓ ↓H␈↓itself␈α∪is␈α∪also␈α∪recognized␈α∀as␈α∪a␈α∪powerful␈α∪manipulable␈α∪element.␈α∀ The␈α∪length
␈↓ ↓H␈↓of␈α∩any␈α∩program␈α∩written␈α∩as␈α∩a␈α∩pool␈α∪of␈α∩BEINGs␈α∩is␈α∩several␈α∩times␈α∩as␈α∩long␈α∪as␈α∩a
␈↓ ↓H␈↓clean␈α∀hand-coded␈α∃version.␈α∀ This␈α∀extra␈α∃code,␈α∀the␈α∀parts␈α∃of␈α∀each␈α∃new␈α∀BEING
␈↓ ↓H␈↓which␈α⊂are␈α⊂superfluous,␈α⊂may␈α⊂be␈α⊂viewed␈α⊂as␈α⊂well-organized␈α⊂self-documentation.
␈↓ ↓H␈↓They␈α∩should␈α∩improve␈α∩the␈α⊃debugging,␈α∩expansion,␈α∩and␈α∩accessibility␈α∩(to␈α⊃alien
␈↓ ↓H␈↓users) of the synthesized code.
␈↓ ↓H␈↓Some␈α⊃assertions␈α∩are␈α⊃so␈α⊃meaningful␈α∩to␈α⊃the␈α⊃user,␈α∩that␈α⊃they␈α⊃should␈α∩be␈α⊃stored
␈↓ ↓H␈↓in␈α∪the␈α∪code␈α∪itself.␈α∀ At␈α∪any␈α∪time,␈α∪the␈α∪user␈α∀may␈α∪look␈α∪at␈α∪a␈α∪piece␈α∀of␈α∪code;
␈↓ ↓H␈↓the␈α∀comments␈α∀present␈α∀␈↓βthen␈↓␈α∀are␈α∀all␈α∀assertions␈α∀pertaining␈α∀to␈α∀that␈α∀piece␈α∪of
␈↓ ↓H␈↓code␈α∪at␈α∪that␈α∪time.␈α∪ BEINGS␈α∪may␈α∪use␈α∪comments␈α∪at␈α∪several␈α∪different␈α∩levels.
␈↓ ↓H␈↓At␈α⊗the␈α⊗lowest␈α⊗level,␈α⊗each␈α⊗comment␈α↔is␈α⊗merely␈α⊗a␈α⊗unique␈α⊗token;␈α⊗it␈α↔may␈α⊗be
␈↓ ↓H␈↓inserted,␈α∃removed,␈α⊗or␈α∃searched␈α∃for.␈α⊗ Slightly␈α∃better,␈α∃the␈α⊗BEINGs␈α∃system
␈↓ ↓H␈↓can␈α∀ask␈α∀"is␈α∀there␈α∀a␈α∀comment␈α∀involving␈α∀...".␈α∀Still␈α∀higher␈α∀level␈α∀usage␈α∀of
␈↓ ↓H␈↓comments␈α∀would␈α∀occur␈α∀if␈α∀a␈α∀BEING␈α∀looked␈α∀at␈α∀a␈α∀comment␈α∀totally␈α∀ignorant␈α∀of
␈↓ ↓H␈↓it, and TRANSLATEd it into something meaningful.
␈↓ ↓H␈↓When␈α∩imagining␈α⊃an␈α∩ideal␈α∩AP␈α⊃(automatic␈α∩programming)␈α⊃system,␈α∩one␈α∩ability␈α⊃we
␈↓ ↓H␈↓might␈α↔wish␈α↔for␈α⊗is␈α↔that␈α↔it␈α⊗be␈α↔able␈α↔to␈α⊗input␈α↔a␈α↔well-documented␈α⊗program,
␈↓ ↓H␈↓glean␈α⊂pure␈α⊂programming␈α⊂knowledge␈α⊂from␈α⊂it,␈α⊂and␈α⊂transform␈α⊂this␈α⊂into␈α⊂a␈α⊂format
␈↓ ↓H␈↓it␈α⊃can␈α⊃use.␈α⊃ Also,␈α∩to␈α⊃improve␈α⊃itself,␈α⊃it␈α∩should␈α⊃be␈α⊃capable␈α⊃of␈α∩digesting␈α⊃a
␈↓ ↓H␈↓sample,␈α⊂valid␈α⊂AP␈α⊂dialog,␈α⊂and␈α⊂(perhaps␈α⊂through␈α⊂additional␈α⊂user␈α⊂interaction)
␈↓ ↓H␈↓modify␈α⊃itself␈α∩so␈α⊃it␈α⊃could␈α∩actually␈α⊃carry␈α⊃on␈α∩that␈α⊃dialog.␈α⊃ The␈α∩BEINGs␈α⊃idea
␈↓ ↓H␈↓may be an insufficient framework for achieving this.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 6␈↓ OTHEORY: IDEAS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓BEINGs␈α∩are␈α⊃now␈α∩contrasted␈α∩against␈α⊃the␈α∩concepts␈α⊃of␈α∩ACTORS,␈α∩FRAMES,␈α⊃HACKER,
␈↓ ↓H␈↓formal AP systems, and macro expansion schemes.
␈↓ ↓H␈↓ACTORS␈α→[Hewitt]␈α→provided␈α→the␈α→key␈α→concept␈α→of␈α→integrating␈α→uniformity␈α_of
␈↓ ↓H␈↓construction␈α_with␈α_sophistocation␈α_of␈α_behavior.␈α_There␈α_are,␈α_however,␈α_many
␈↓ ↓H␈↓things␈α∃one␈α∃wants␈α∃to␈α∃know␈α∃about␈α∃a␈α∃routine,␈α∃other␈α∃than␈α∃its␈α∃value␈α∃and␈α∀its
␈↓ ↓H␈↓control␈α_successor.␈α_The␈α_structure␈α_isn't␈α_rich␈α_enough␈α_to␈α_allow␈α_ACTORS␈α_to
␈↓ ↓H␈↓communicate␈α⊃in␈α⊃a␈α⊂␈↓βdescriptive␈↓␈α⊃way.␈α⊃There␈α⊂seems␈α⊃to␈α⊃be␈α⊂an␈α⊃infinite␈α⊃regress␈α⊃in␈α⊂a
␈↓ ↓H␈↓theoretical␈α↔community␈α↔of␈α↔ACTORS,␈α↔just␈α↔as␈α↔with␈α↔BEINGs.␈α_ Hewitt␈α↔suggests
␈↓ ↓H␈↓stopping␈α∀when␈α∪his␈α∀ACTOR-part␈α∪(the␈α∀value␈α∪returned)␈α∀becomes␈α∀constant.␈α∪ The
␈↓ ↓H␈↓number␈α_of␈α_BEING-parts␈α_and␈α_the␈α_high␈α_level␈α_of␈α_each's␈α_activity␈α_precludes
␈↓ ↓H␈↓using␈α∃this␈α∃criterion;␈α∃a␈α∃much␈α∀less␈α∃rigorous␈α∃judgement␈α∃of␈α∃primitivity␈α∀was
␈↓ ↓H␈↓used in PUP6's BEINGs.
␈↓ ↓H␈↓FRAMES␈α⊂[Minsky]␈α⊂seems␈α⊂superficially␈α⊂similar␈α⊂to␈α⊂BEINGs,␈α⊂but␈α⊂there␈α⊂is␈α⊂a␈α⊂deep
␈↓ ↓H␈↓difference:␈α⊂FRAMES␈α⊂intentionally␈α⊂have␈α⊂default␈α⊂values␈α⊂already␈α⊂filled␈α⊂in␈α⊂for
␈↓ ↓H␈↓each␈α∪frame,␈α∪and␈α∪replaced␈α∪only␈α∪when␈α∪necessary.␈α∪ This␈α∪is␈α∪akin␈α∪to␈α∩automatic
␈↓ ↓H␈↓programming␈α→by␈α→blind␈α→debugging,␈α→but␈α→is␈α→antithetical␈α→to␈α→the␈α_fastidious
␈↓ ↓H␈↓bookkeeping␈α∪BEINGs␈α∪philosophy.␈α∪ As␈α∀an␈α∪example,␈α∪consider␈α∪the␈α∪writing␈α∀of␈α∪a
␈↓ ↓H␈↓short,␈α⊂recursive,␈α⊂list␈α⊂manipulation␈α⊂LISP␈α⊂program␈α⊂(reverse,␈α⊂flatten,␈α⊂assoc,
␈↓ ↓H␈↓alternate,␈α∪etc.)␈α∪A␈α∪human,␈α∪consulting␈α∪the␈α∪proper␈α∪frame␈α∪in␈α∪his␈α∪head,␈α∩knows
␈↓ ↓H␈↓to␈α∪ignore␈α∪the␈α∪base␈α∀step␈α∪for␈α∪a␈α∪while,␈α∪then␈α∀fill␈α∪it␈α∪in,␈α∪usually␈α∪as␈α∀␈↓βif␈α∪NIL,
␈↓ ↓H␈↓βthen␈α⊃NIL␈↓,␈α⊂or,␈α⊃for␈α⊂numerical␈α⊃functions,␈α⊂␈↓βif␈α⊃NIL,␈α⊂then␈α⊃0␈↓␈α⊂or␈α⊃␈↓β1␈↓.␈α⊂ The␈α⊃human␈α⊂makes
␈↓ ↓H␈↓this␈α∪default␈α∪synthesis,␈α∪tries␈α∪out␈α∪the␈α∪program,␈α∪and␈α∪looks␈α∪closer␈α∪(to␈α∩fill
␈↓ ↓H␈↓in␈α⊂this␈α⊂"slot"␈α⊂properly)␈α⊂only␈α⊂if␈α⊂something␈α⊂calls␈α⊂his␈α⊂attention␈α⊂to␈α⊂it␈α⊂(such
␈↓ ↓H␈↓as␈α⊃a␈α⊃LISP␈α⊃error␈α∩message.)␈α⊃A␈α⊃BEINGs␈α⊃system␈α∩would␈α⊃also␈α⊃defer␈α⊃working␈α∩on␈α⊃the
␈↓ ↓H␈↓base␈α⊂step,␈α⊂but␈α⊂could␈α⊂--␈α⊂and␈α⊂would␈α⊂--␈α⊂place␈α⊂a␈α⊂note␈α⊂about␈α⊂that␈α⊂deferral␈α⊂into
␈↓ ↓H␈↓the␈α⊂assertional␈α⊂warning␈α⊂base.␈α⊂ Before␈α⊂thinking␈α⊂it␈α⊂was␈α⊂finished,␈α⊂the␈α⊂system
␈↓ ↓H␈↓would␈α⊂attend␈α⊂to␈α⊂that␈α⊂note␈α⊂carefully.␈α⊂A␈α⊂word␈α⊂in␈α⊂defense␈α⊂of␈α⊂FRAMES:␈α⊂they␈α⊂are
␈↓ ↓H␈↓meant␈α⊗to␈α⊗be␈α⊗a␈α⊗construct␈α∃to␈α⊗model␈α⊗perception,␈α⊗and␈α⊗therefore␈α⊗the␈α∃default
␈↓ ↓H␈↓concept␈α∃makes␈α⊗sense␈α∃for␈α∃them.␈α⊗BEINGs␈α∃are␈α∃clearly␈α⊗non-anthropomorphic␈α∃in
␈↓ ↓H␈↓their␈α∀internal␈α∀workings,␈α∀and␈α∀would␈α∀be␈α∀very␈α∀unlikely␈α∀to␈α∀occur␈α∀as␈α∀a␈α∀human
␈↓ ↓H␈↓perceptual mechanism.
␈↓ ↓H␈↓HACKER␈α⊗[Sussman]␈α↔differs␈α⊗from␈α↔BEINGs␈α⊗in␈α⊗the␈α↔same␈α⊗qualitative␈α↔way.␈α⊗ The
␈↓ ↓H␈↓orientation␈α⊂of␈α⊂HACKER␈α⊂is␈α⊂to␈α⊂put␈α⊂together␈α⊂pieces␈α⊂of␈α⊂programs␈α⊂into␈α⊂something
␈↓ ↓H␈↓close␈α_to␈α_the␈α_final␈α_desired␈α_target,␈α_then␈α_try␈α_and␈α_run␈α_it.␈α_ When␈α_errors
␈↓ ↓H␈↓result,␈α⊗they␈α↔are␈α⊗analyzed␈α↔and␈α⊗then␈α⊗patched.␈α↔ BEINGs␈α⊗is␈α↔oriented␈α⊗toward
␈↓ ↓H␈↓writing␈α≠bug-free␈α≠code;␈α≠what␈α≤it␈α≠writes␈α≠must␈α≠always␈α≠coincide␈α≤with␈α≠its
␈↓ ↓H␈↓internal␈α⊃specifications␈α∩of␈α⊃that␈α∩code.␈α⊃The␈α∩user␈α⊃may␈α∩later␈α⊃change␈α∩his␈α⊃mind,
␈↓ ↓H␈↓and␈α⊗a␈α⊗BEINGs␈α⊗system␈α⊗must␈α⊗be␈α↔able␈α⊗to␈α⊗modify␈α⊗its␈α⊗own␈α⊗programs,␈α↔but␈α⊗this
␈↓ ↓H␈↓process␈α⊂is␈α⊂much␈α⊂better␈α⊂defined␈α⊂than␈α⊂blind␈α⊂debugging.␈α⊂On␈α⊂the␈α⊂other␈α⊂hand,␈α⊂if
␈↓ ↓H␈↓a␈α∩BEINGs␈α∩system␈α∩does␈α∩have␈α∩an␈α∩unexpected␈α∪bug␈α∩in␈α∩it,␈α∩it␈α∩may␈α∩not␈α∩be␈α∪able␈α∩to
␈↓ ↓H␈↓recover␈α↔from␈α↔it.␈α⊗One␈α↔way␈α↔to␈α⊗overcome␈α↔this␈α↔would␈α⊗be␈α↔to␈α↔include␈α⊗special
␈↓ ↓H␈↓recover-from-bugs BEINGs.
␈↓ ↓H␈↓The␈α formal␈α manipulation␈α systems␈α which␈α also␈α synthesize␈α code␈α are␈α so
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 7␈↓ OTHEORY: IDEAS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓different␈α≠from␈α≠BEINGs,␈α≠that␈α≤it␈α≠is␈α≠difficult␈α≠to␈α≠compare␈α≤them.␈α≠ These
␈↓ ↓H␈↓logical␈α⊗systems␈α⊗(e.g.,␈α⊗[Luckham])␈α⊗attack␈α⊗an␈α⊗entirely␈α⊗different␈α⊗problem.
␈↓ ↓H␈↓Their␈α∪task␈α∪is␈α∪specified␈α∀rigorously␈α∪in␈α∪advance,␈α∪and␈α∪they␈α∀proceed␈α∪formally
␈↓ ↓H␈↓to␈α∩search␈α∪for␈α∩a␈α∪solution␈α∩program.␈α∪ BEINGs␈α∩are␈α∪designed␈α∩to␈α∪work␈α∩on␈α∪a␈α∩much
␈↓ ↓H␈↓higher␈α∀level,␈α∪heuristically.␈α∀ Each␈α∪action␈α∀is␈α∪implicitly␈α∀justified␈α∀by␈α∪the
␈↓ ↓H␈↓fact␈α⊂that␈α⊂the␈α⊂user␈α⊂can␈α⊂later␈α⊂describe␈α⊂to␈α⊂the␈α⊂system␈α⊂what␈α⊂is␈α⊂wrong␈α⊂with␈α⊂the
␈↓ ↓H␈↓program␈α∪it's␈α∪generated.␈α∪BEINGs␈α∀should␈α∪thus␈α∪be␈α∪tolerant␈α∪of␈α∀user␈α∪ambiguity
␈↓ ↓H␈↓and error. Also, BEINGs are not limited to automatic programming.
␈↓ ↓H␈↓Like␈α⊂␈↓βany␈↓␈α⊂AP␈α⊃system␈α⊂which␈α⊂writes␈α⊃structured␈α⊂programs,␈α⊂the␈α⊃external␈α⊂behavior
␈↓ ↓H␈↓of␈α⊃a␈α∩BEINGs␈α⊃system␈α⊃applied␈α∩to␈α⊃this␈α⊃task␈α∩is␈α⊃reminiscent␈α⊃of␈α∩macro␈α⊃expansion
␈↓ ↓H␈↓regardless␈α∨of␈α∨␈↓βwhat␈↓␈α≡the␈α∨internal␈α∨BEING␈α≡interactions␈α∨are.␈α∨ One␈α≡major
␈↓ ↓H␈↓distinction␈α~between␈α~the␈α~two␈α~concepts␈α≠is␈α~when␈α~and␈α~how␈α~the␈α≠macros␈α~are
␈↓ ↓H␈↓expanded.␈α⊂Traditional␈α⊂answers␈α⊂are:␈α⊂at␈α⊂compile␈α⊂time,␈α⊂by␈α⊂rigid␈α⊂substitutions
␈↓ ↓H␈↓(although␈α≡not␈α≡necessarily␈α≥context-free.)␈α≡BEINGs␈α≡systems␈α≡expand␈α≥their
␈↓ ↓H␈↓"macros"␈α⊂at␈α⊂times␈α⊂they␈α⊂choose,␈α⊂using␈α⊂knowledge␈α⊂gleaned␈α⊂from␈α⊂each␈α⊂other␈α⊂and
␈↓ ↓H␈↓from␈α≤the␈α≤user.␈α≤ One␈α≤could␈α≤consider␈α≤such␈α≤a␈α≤system␈α≤as␈α≤a␈α≤smart␈α≤macro
␈↓ ↓H␈↓expansion scheme.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 8␈↓ OTHEORY: IDEAS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓4. REALITY: EXAMPLES␈↓
␈↓ ↓H␈↓This␈α∀section␈α∪presents␈α∀examples␈α∪of␈α∀the␈α∪following:␈α∀a␈α∀programming␈α∪knowledge
␈↓ ↓H␈↓BEING,␈α∀an␈α∀explanation␈α∀of␈α∀what␈α∀happens␈α∀when␈α∀a␈α∀BEING␈α∀is␈α∀called,␈α∀a␈α∀concept
␈↓ ↓H␈↓formation␈α_knowledge␈α_BEING,␈α_a␈α_descriptions␈α_of␈α_a␈α_piece␈α_of␈α_the␈α_user-PUP6
␈↓ ↓H␈↓dialogue,␈α and␈α some␈α justification␈α for␈α using␈α functions,␈α call-by-name,
␈↓ ↓H␈↓demons,␈α∪and␈α∪assertions.␈α∪Although␈α∀these␈α∪examples␈α∪are␈α∪meant␈α∪to␈α∀clarify␈α∪the
␈↓ ↓H␈↓preceding␈α∩section's␈α⊃theoretical␈α∩ideas,␈α∩they␈α⊃are␈α∩all␈α⊃drawn␈α∩from␈α∩the␈α⊃actual
␈↓ ↓H␈↓PUP6 system.
␈↓ ↓H␈↓4.1.␈α+ OBTAIN_USABLE_INFORMATION␈α+is␈α*a␈α+typical␈α+high-level,␈α*domain-
␈↓ ↓H␈↓independent␈α∃BEING.␈α⊗ The␈α∃WHEN␈α∃part␈α⊗consists␈α∃of␈α∃predicate␈α⊗"feelers"␈α∃which
␈↓ ↓H␈↓sample␈α_the␈α_world␈α_and␈α_report␈α_their␈α_qualities␈α_numerically.␈α_ A␈α_reason␈α_is
␈↓ ↓H␈↓supplied␈α∪with␈α∪each␈α∪feeler:␈α∪an␈α∪English␈α∪sentence␈α∪stored␈α∪for␈α∪the␈α∪benefit␈α∩of
␈↓ ↓H␈↓inquisitive␈α↔users.␈α↔ The␈α_numbers␈α↔are␈α↔then␈α↔simply␈α_added␈α↔to␈α↔decide␈α_how␈α↔a
␈↓ ↓H␈↓propos␈α⊃the␈α∩BEING␈α⊃is␈α∩at␈α⊃present.␈α∩ This␈α⊃scheme␈α∩is␈α⊃adequate␈α∩but␈α⊃undesirable;
␈↓ ↓H␈↓one␈α∀would␈α∃like␈α∀them␈α∀to␈α∃discuss␈α∀descriptions␈α∀of␈α∃what␈α∀they␈α∃encounter;␈α∀but
␈↓ ↓H␈↓the␈α⊂WHEN␈α⊂part␈α⊂is␈α⊂used␈α⊂only␈α⊂to␈α⊂break␈α⊂ties␈α⊂between␈α⊂BEINGs␈α⊂vying␈α⊂for␈α⊂control,
␈↓ ↓H␈↓and␈α⊃it␈α⊃usually␈α⊃doesn't␈α∩matter␈α⊃what␈α⊃order␈α⊃they␈α∩go␈α⊃in.␈α⊃ Thus␈α⊃a␈α∩simple,␈α⊃fast
␈↓ ↓H␈↓method␈α→of␈α→selection␈α→suffices.␈α→ This␈α→particular␈α→BEING␈α→(whose␈α→parts␈α_are
␈↓ ↓H␈↓exhibited␈α∩on␈α∩pages␈α∩10␈α∩and␈α∩11)␈α∩has␈α∩feelers␈α∩which␈α∩respond␈α∩that␈α∩it␈α∩is␈α∩␈↓βalways␈↓
␈↓ ↓H␈↓an␈α∃undesirable␈α∃(-10)␈α∃thing␈α∃to␈α∃do,␈α∀but␈α∃␈↓βmay␈↓␈α∃be␈α∃indicated␈α∃(+111)␈α∃if␈α∀there
␈↓ ↓H␈↓exists␈α⊗new␈α⊗but␈α⊗not␈α⊗yet␈α∃usable␈α⊗information.␈α⊗These␈α⊗numbers,␈α⊗like␈α⊗all␈α∃the
␈↓ ↓H␈↓parts␈α∪of␈α∪all␈α∩the␈α∪BEINGs␈α∪initally␈α∩in␈α∪PUP6,␈α∪were␈α∩decided␈α∪upon␈α∪and␈α∩inserted
␈↓ ↓H␈↓by hand.
␈↓ ↓H␈↓The␈α_IDEN␈α_parts␈α_are␈α_collected␈α_together␈α_into␈α_a␈α_large␈α_translation␈α_table.
␈↓ ↓H␈↓When␈α∪a␈α∪form␈α∪␈↓βLI␈↓␈α∪must␈α∪be␈α∩translated,␈α∪the␈α∪TRANSLATE␈α∪BEING␈α∪goes␈α∪through␈α∩this
␈↓ ↓H␈↓table,␈α⊃asking␈α∩each␈α⊃IDEN␈α⊃part␈α∩if␈α⊃it␈α∩claims␈α⊃to␈α⊃recognize␈α∩␈↓βLI␈↓.␈α⊃Each␈α∩IDEN␈α⊃runs
␈↓ ↓H␈↓its␈α∩own␈α⊃little␈α∩program,␈α∩typically␈α⊃some␈α∩type␈α∩of␈α⊃pattern␈α∩match␈α∩involving␈α⊃␈↓βLI␈↓
␈↓ ↓H␈↓and␈α↔the␈α↔state␈α⊗of␈α↔the␈α↔world,␈α⊗to␈α↔answer␈α↔this␈α⊗question.␈α↔ Some␈α↔measure␈α⊗of
␈↓ ↓H␈↓goodness␈α⊃of␈α∩match␈α⊃is␈α⊃also␈α∩reported.␈α⊃ If␈α⊃there␈α∩is␈α⊃more␈α⊃than␈α∩one␈α⊃responder,
␈↓ ↓H␈↓CHOOSE-FROM␈α⊃picks␈α∩the␈α⊃one␈α∩with␈α⊃the␈α∩highest␈α⊃priority␈α∩of␈α⊃match.␈α∩ The␈α⊃winner
␈↓ ↓H␈↓runs␈α⊃a␈α∩little␈α⊃program␈α∩which␈α⊃ultimately␈α∩returns␈α⊃a␈α∩BEING-call␈α⊃or␈α∩a␈α⊃constant
␈↓ ↓H␈↓as␈α⊂the␈α⊂translated␈α⊂value␈α⊂of␈α⊃␈↓βLI␈↓.␈α⊂This␈α⊂program␈α⊂might␈α⊂call␈α⊂other␈α⊃BEINGs,␈α⊂often
␈↓ ↓H␈↓calls␈α⊂TRANSLATE␈α⊂several␈α⊂times␈α⊂recursively␈α⊃on␈α⊂parts␈α⊂of␈α⊂␈↓βLI␈↓.␈α⊂ Now␈α⊃examine␈α⊂the
␈↓ ↓H␈↓IDEN␈α∀part␈α∪of␈α∀the␈α∪OBTAIN_USABLE_INFORMATION␈α∀BEING␈α∪(next␈α∀page).␈α∀ There␈α∪are
␈↓ ↓H␈↓just␈α≤two␈α≠classes␈α≤of␈α≤phrases␈α≠that␈α≤this␈α≤BEING␈α≠can␈α≤recognize.␈α≤ If␈α≠two
␈↓ ↓H␈↓conditions␈α→are␈α→met,␈α→it␈α→says␈α→to␈α→␈↓βcall␈↓␈α→OBTAIN-USABLE-INFORMATION␈α→with,␈α_as
␈↓ ↓H␈↓argument,␈α⊂the␈α⊂result␈α⊂of␈α⊂calling␈α⊃TRANSLATE␈α⊂on␈α⊂the␈α⊂second␈α⊂element␈α⊂of␈α⊃␈↓βLI␈↓.␈α⊂ If
␈↓ ↓H␈↓some␈α⊃BEING␈α⊃or␈α⊃user␈α∩wants␈α⊃to␈α⊃find␈α⊃out␈α∩more␈α⊃about␈α⊃anything,␈α⊃then␈α∩this␈α⊃BEING
␈↓ ↓H␈↓can be called with that thing as argument.
␈↓ ↓H␈↓The␈α⊃EFFECTS␈α∩parts␈α⊃of␈α⊃each␈α∩BEING␈α⊃are␈α⊃similarly␈α∩collected␈α⊃into␈α⊃one␈α∩table␈α⊃to
␈↓ ↓H␈↓facilitate␈α∃asking␈α∃all␈α∃BEINGs␈α∃simultaneously␈α∀"Can␈α∃you␈α∃cause␈α∃X␈α∃to␈α∀occur?"
␈↓ ↓H␈↓Each␈α⊂EFFECTS␈α⊂part␈α⊂examines␈α⊂X␈α⊂and␈α⊂the␈α⊂world,␈α⊂and␈α⊂either␈α⊂replies␈α⊂No,␈α⊂or␈α⊂else
␈↓ ↓H␈↓returns␈α→a␈α→little␈α→program␈α→(involving␈α→calls␈α→and␈α→constants)␈α→which␈α_should
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α!page 9␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓produce␈α≡the␈α≡effect,␈α≡with␈α∨a␈α≡certain␈α≡probability.␈α≡ This␈α∨program␈α≡will
␈↓ ↓H␈↓probably␈α⊂involve␈α⊂a␈α⊂call␈α⊂to␈α⊂the␈α⊂BEING␈α⊂itself.␈α⊂The␈α⊂BEING␈α⊂below␈α⊂shows␈α⊂that␈α⊂it
␈↓ ↓H␈↓should␈α⊃be␈α∩called␈α⊃to␈α∩acheive␈α⊃the␈α∩existence␈α⊃of␈α∩new,␈α⊃usable␈α∩information␈α⊃(see
␈↓ ↓H␈↓the MAIN:EFFECTS part, page 11).
␈↓ ↓H␈↓The␈α∀WHAT,␈α∀HOW,␈α∪and␈α∀WHY␈α∀parts␈α∪are␈α∀mainly␈α∀for␈α∪the␈α∀user's␈α∀benefit.␈α∀ When␈α∪a
␈↓ ↓H␈↓choice␈α⊗between␈α↔BEINGs␈α⊗must␈α↔be␈α⊗made,␈α⊗the␈α↔WHEN,␈α⊗AFFECTS,␈α↔and␈α⊗COMPLEXITY-
␈↓ ↓H␈↓VECTOR␈α⊂parts␈α⊂are␈α⊂queried.␈α⊂ If␈α⊂a␈α⊂new,␈α⊂manipulated␈α⊂version␈α⊂of␈α⊂the␈α⊂BEING␈α⊂must
␈↓ ↓H␈↓be␈α⊂created,␈α⊂the␈α⊂SPECIALIZATIONS,␈α⊂ENCODABLE,␈α⊂DATA-STRUCTURE,␈α⊂PREDICATE,␈α⊂and
␈↓ ↓H␈↓FORM-CHANGING␈α⊗parts␈α↔might␈α⊗be␈α↔relevant.␈α⊗ If␈α⊗the␈α↔BEING␈α⊗fails,␈α↔some␈α⊗BEING
␈↓ ↓H␈↓speicified in the ALTERNATIVES or GENERALIZATIONS parts might be tried.
␈↓ ↓H␈↓In␈α↔the␈α↔current␈α_case,␈α↔the␈α↔COMPLEXITY-VECTOR␈α↔says␈α_that␈α↔it␈α↔is␈α_of␈α↔average
␈↓ ↓H␈↓difficulty␈α∪to␈α∪call,␈α∩its␈α∪descendants␈α∪may␈α∩(.5␈α∪chance)␈α∪call␈α∩it␈α∪back,␈α∪it␈α∩has
␈↓ ↓H␈↓an␈α∀average␈α∀chance␈α∪of␈α∀success␈α∀and␈α∪cost␈α∀of␈α∀attempting␈α∪it,␈α∀and␈α∀there␈α∀is␈α∪no
␈↓ ↓H␈↓(.1) good reason to defer it any longer.
␈↓ ↓H␈↓The␈α→AFFECTS␈α→part␈α→of␈α→the␈α→OBTAIN_USABLE_INFORMATION␈α→BEING␈α→is␈α→clear.␈α_One
␈↓ ↓H␈↓BEING is definitely called, and four others might be.
␈↓ ↓H␈↓The␈α∃absence␈α⊗of␈α∃some␈α∃parts,␈α⊗like␈α∃DATA_STRUCTURE,␈α∃PREDICATE,␈α⊗and␈α∃NLAMBDA,
␈↓ ↓H␈↓indicate␈α∃that␈α∃these␈α∃qualities␈α∃don't␈α∀apply.␈α∃ The␈α∃absence␈α∃of␈α∃other␈α∀parts,
␈↓ ↓H␈↓like␈α∩SPECIALIZATIONS␈α∩and␈α∩ALTERNATIVES,␈α⊃indicate␈α∩a␈α∩lack␈α∩of␈α∩thoroughness␈α⊃in
␈↓ ↓H␈↓filling out unneeded BEING parts.
␈↓ ↓H␈↓The␈α⊃META-CODE␈α∩has␈α⊃us␈α∩choose␈α⊃from␈α∩the␈α⊃following␈α∩four␈α⊃alternatives,␈α∩each␈α⊃of
␈↓ ↓H␈↓which␈α∀is␈α∪itself␈α∀a␈α∪BEING:␈α∀Get_Brand_New_Information␈α∪(in␈α∀English,␈α∀from␈α∪the
␈↓ ↓H␈↓user),␈α Translate␈α something␈α (transform␈α from␈α English␈α to␈α BEING-calls),
␈↓ ↓H␈↓Analyze_The_Implications␈α#(of␈α#some␈α#existing,␈α$translated␈α#information),
␈↓ ↓H␈↓Extract_a_Relevant_Subset␈α≠(of␈α≠the␈α~existing␈α≠information)␈α≠to␈α~concentrate
␈↓ ↓H␈↓upon.␈α⊂ Calls␈α⊂are␈α⊂nondeterministic␈α⊂only␈α⊂when␈α⊂the␈α⊂BEING␈α⊂doesn't␈α⊂know␈α⊂exactly
␈↓ ↓H␈↓which␈α∪BEING␈α∪to␈α∀call.␈α∪If␈α∪the␈α∀␈↓βset␈↓␈α∪of␈α∪possible␈α∪choices␈α∀is␈α∪known,␈α∪as␈α∀in␈α∪this
␈↓ ↓H␈↓case,␈α∀then␈α∃CHOOSE-FROM␈α∀is␈α∀called␈α∃with␈α∀the␈α∀choice␈α∃set␈α∀explicit.␈α∃ If␈α∀even
␈↓ ↓H␈↓this␈α⊂isn't␈α⊂known,␈α⊂then␈α⊂CHOOSE-FROM␈α⊂must␈α⊂query␈α⊂the␈α⊂EFFECTS␈α⊂parts␈α⊂of␈α⊂all␈α⊂the
␈↓ ↓H␈↓BEINGs in the system.
␈↓ ↓H␈↓Below␈α∪are␈α∪exhibited␈α∪the␈α∪actual␈α∪representation␈α∪of␈α∪this␈α∪BEING␈α∪in␈α∪PUP6,␈α∩and
␈↓ ↓H␈↓the function which would be executed if it were ␈↓βcalled␈↓.
␈↓ ↓H␈↓∧␈↓β␈↓&PART␈↓'β ␈↓&actual value of the part for OBTAIN:USABLE:INFORMATION␈↓'β ␈↓∧
␈↓ ↓H␈↓∧IDEN (((AND (EQUAL (CAR LI)
␈↓ ↓H␈↓∧ OBTAIN:USABLE:INFORMATION)
␈↓ ↓H␈↓∧ (EQUAL (LENGTH LI)
␈↓ ↓H␈↓∧ 2))
␈↓ ↓H␈↓∧ (OBTAIN:USABLE:INFORMATION (TRANSLATE (CADR LI))))
␈↓ ↓H␈↓∧ ((MATCH ( FIND OUT MORE ABOUT ANY1) LI)
␈↓ ↓H␈↓∧ (OBTAIN:USABLE:INFORMATION ANY1)))
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 10␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓∧BEING T
␈↓ ↓H␈↓∧EXPLICIT:ARGS (U)
␈↓ ↓H␈↓∧WHAT (TUPLE OBTAIN SOME INFORMATION WHICH CAN BE USED)
␈↓ ↓H␈↓∧HOW (TUPLE OBTAIN NEW FACTS ABOUT OLD INFORMATION, OR OBTAIN TOTALLY
␈↓ ↓H␈↓∧ NEW INFORMATION)
␈↓ ↓H␈↓∧WHY (TUPLE PUP HAS NO MORE INFORMATION THAT IT CAN USE TO PROGRESS)
␈↓ ↓H␈↓∧WHEN ((T -10 (TUPLE SINCE THIS IS AN EXPONENTIALLY-GROWING, BAD THING
␈↓ ↓H␈↓∧ TO DO IN GENERAL))
␈↓ ↓H␈↓∧ (NEW:INFO:LIST 111
␈↓ ↓H␈↓∧ (QUOTE (BECAUSE WE SHOULD WORK ON UNASSIMILATED NEW
␈↓ ↓H␈↓∧ INFORMATION IF THERE IS ANY))))
␈↓ ↓H␈↓∧META:CODE (PROGN (SETQ BECAUSE
␈↓ ↓H␈↓∧ (QUOTE (WE CAN ONLY TRY TO OBTAIN USABLE
␈↓ ↓H␈↓∧ INFORMATION IN ONE WAY AT A TIME)))
␈↓ ↓H␈↓∧ (CHOOSE:FROM (QUOTE ((TRANSLATE U)
␈↓ ↓H␈↓∧ (GET:NEW:INFORMATION U)
␈↓ ↓H␈↓∧ (ANALYZE:IMPLICATIONS U)
␈↓ ↓H␈↓∧ (EXTRACT:RELEVANT:SUBSET U)))))
␈↓ ↓H␈↓∧EXPLICIT:ARGS:CHECK T
␈↓ ↓H␈↓∧MAIN:EFFECTS (((NEW INFO ANY1)
␈↓ ↓H␈↓∧ (OBTAIN:USABLE:INFORMATION (@ ANY1)))
␈↓ ↓H␈↓∧ ((USABLE INFO ANY1)
␈↓ ↓H␈↓∧ (OBTAIN:USABLE:INFORMATION (@ ANY1))))
␈↓ ↓H␈↓∧AFFECTS (QUOTE ((CHOOSE:FROM CALLED)
␈↓ ↓H␈↓∧ (TRANSLATE POSSIBLE:CALLED)
␈↓ ↓H␈↓∧ (GET:NEW:INFORMATION POSSIBLE:CALLED)
␈↓ ↓H␈↓∧ (ANALYZE:IMPLICATIONS POSSIBLE:CALLED)
␈↓ ↓H␈↓∧ (EXTRACT:RELEVANT:SUBSET POSSIBLE:CALLED)))
␈↓ ↓H␈↓∧COMPLEXITY:VECTOR (.5 .5 .5 .5 .1)
␈↓ ↓H␈↓ 4.2. When a BEING is ␈↓βcalled␈↓, its parts are assembled into a
␈↓ ↓H␈↓function which is then executed. Here is the ␈↓βFUNCTIONAL␈↓ form of the
␈↓ ↓H␈↓OBTAIN:USABLE:INFORMATION BEING:
␈↓ ↓H␈↓∧(OBTAIN:USABLE:INFORMATION
␈↓ ↓H␈↓∧ (LAMBDA (U FN:VALUE FINAL:CO:REQ)
␈↓ ↓H␈↓∧ (PROG1
␈↓ ↓H␈↓∧ (AND
␈↓ ↓H␈↓∧ (SETQ BEING:STACK (CONS OBTAIN:USABLE:INFORMATION BEING:STACK))
␈↓ ↓H␈↓∧ (PUT OBTAIN:USABLE:INFORMATION SPEC:WHY BECAUSE)
␈↓ ↓H␈↓∧ (EVERY (APPEND CURRENT:DEMONS USER:INTERRUPT:DEMONS)
␈↓ ↓H␈↓∧ (QUOTE APPLY*))
␈↓ ↓H␈↓∧ (SETQ BECAUSE
␈↓ ↓H␈↓∧ (QUOTE (WE CAN ONLY TRY TO OBTAIN USABLE
␈↓ ↓H␈↓∧ INFORMATION IN ONE WAY AT A TIME)))
␈↓ ↓H␈↓∧ (CHOOSE:FROM (QUOTE ((TRANSLATE U)
␈↓ ↓H␈↓∧ (GET:NEW:INFORMATION U)
␈↓ ↓H␈↓∧ (ANALYZE:IMPLICATIONS U)
␈↓ ↓H␈↓∧ (EXTRACT:RELEVANT:SUBSET U)))))
␈↓ ↓H␈↓∧ (SETQ BEING:STACK (CDR BEING:STACK)))))
␈↓ ↓H␈↓The␈α⊗process␈α⊗of␈α⊗assembling␈α⊗the␈α∃BEING␈α⊗parts␈α⊗into␈α⊗a␈α⊗function␈α⊗is␈α∃straight-
␈↓ ↓H␈↓forward.␈α∃ First,␈α∃the␈α∃explicit␈α∃arguments␈α∀(those␈α∃global␈α∃to␈α∃the␈α∃BEING)␈α∀are
␈↓ ↓H␈↓bound.␈α≥The␈α≥implicit␈α≥arguments␈α≥(those␈α≤local␈α≥to␈α≥the␈α≥BEING,␈α≥like␈α≤PROG
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 11␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓variables)␈α⊂are␈α⊂initialized.␈α⊂The␈α⊂name␈α⊂of␈α⊂the␈α⊂BEING␈α⊂is␈α⊂pushed␈α⊂onto␈α⊂the␈α⊂BEING
␈↓ ↓H␈↓control␈α⊂stack␈α⊂(pointing␈α⊂to␈α⊂its␈α⊂caller),␈α⊂and␈α⊂any␈α⊂newly-activated␈α⊂demons␈α⊂are
␈↓ ↓H␈↓pushed␈α↔onto␈α↔the␈α↔demon␈α↔stack.␈α↔ The␈α↔ARGS-CHECK␈α↔predicates␈α_are␈α↔evaluated.
␈↓ ↓H␈↓Then␈α~PUP6␈α~works␈α~to␈α~make␈α≠each␈α~PRE-REQUISITE␈α~true␈α~in␈α~the␈α≠world.␈α~ Each
␈↓ ↓H␈↓COMMENT␈α≤is␈α≤evaluated,␈α≤then␈α≤the␈α≤CO-REQUISITES,␈α≤META-CODE,␈α≤and␈α≤current
␈↓ ↓H␈↓demons␈α∀all␈α∪are␈α∀executed␈α∪in␈α∀pseudo-parallel.␈α∪ Each␈α∀POST-REQUISITE␈α∀is␈α∪then
␈↓ ↓H␈↓satisfied.␈α⊂ Since␈α⊂these␈α⊂activities␈α⊂are␈α⊂all␈α⊂embedded␈α⊂in␈α⊂an␈α⊂AND,␈α⊂any␈α⊂of␈α⊂them
␈↓ ↓H␈↓may␈α⊃cause␈α⊃the␈α⊃entire␈α∩BEING␈α⊃to␈α⊃halt␈α⊃and␈α∩fail,␈α⊃simply␈α⊃by␈α⊃returning␈α∩NIL.␈α⊃ In
␈↓ ↓H␈↓both␈α∪cases,␈α∪just␈α∩before␈α∪exiting,␈α∪the␈α∩demon␈α∪stack␈α∪is␈α∩popped␈α∪and␈α∪the␈α∩BEING
␈↓ ↓H␈↓stack␈α≡is␈α∨updated␈α≡(usually␈α∨just␈α≡popped),␈α≡and␈α∨control␈α≡passes␈α∨to␈α≡the
␈↓ ↓H␈↓delegated␈α⊃BEING␈α∩(usually␈α⊃the␈α⊃one␈α∩who␈α⊃called␈α⊃this␈α∩BEING,␈α⊃at␈α⊃the␈α∩state␈α⊃when
␈↓ ↓H␈↓he␈α∀called␈α∃it.)␈α∀A␈α∀fancy␈α∃context␈α∀mechanism␈α∀was␈α∃available␈α∀but␈α∃not␈α∀actually
␈↓ ↓H␈↓needed.
␈↓ ↓H␈↓The␈α⊗function␈α⊗which␈α⊗assembled␈α⊗all␈α∃the␈α⊗BEINGs␈α⊗exploited␈α⊗the␈α⊗fact␈α⊗that␈α∃it
␈↓ ↓H␈↓operated␈α⊃only␈α⊃at␈α⊃system␈α⊃load␈α⊃time.␈α∩Thus␈α⊃if␈α⊃the␈α⊃BEING␈α⊃had␈α⊃no␈α⊃new␈α∩DEMONs␈α⊃to
␈↓ ↓H␈↓activate,␈α"all␈α"the␈α#corresponding␈α"demon-stack␈α"manipulations␈α#could␈α"be
␈↓ ↓H␈↓omitted.␈α∩Optimizations␈α∩like␈α∩these␈α⊃are␈α∩clear␈α∩from␈α∩comparing␈α∩the␈α⊃functional
␈↓ ↓H␈↓form␈α⊂and␈α⊂the␈α⊂description␈α⊂of␈α⊂how␈α⊂it␈α⊂should␈α⊂be␈α⊂created␈α⊂(see␈α⊂above).␈α⊂ Another
␈↓ ↓H␈↓example␈α→in␈α→this␈α_BEING␈α→is␈α→that␈α→no␈α_CO-REQUISITES␈α→occur,␈α→so␈α→no␈α_parallel
␈↓ ↓H␈↓processing need be simulated.
␈↓ ↓H␈↓4.2␈α∩PARTITION_A_DOMAIN␈α∩is␈α∩a␈α∩high-level,␈α∩domain-specific␈α∩BEING␈α∩whose␈α∩basic
␈↓ ↓H␈↓idea␈α∀is␈α∀to␈α∪divide␈α∀up␈α∀a␈α∪space␈α∀into␈α∀categories.␈α∪ Only␈α∀two␈α∀BEING␈α∀parts␈α∪are
␈↓ ↓H␈↓filled␈α∀in␈α∀here␈α∀which␈α∀were␈α∀absent␈α∀from␈α∀OBTAIN_USABLE_INFORMATION;␈α∀namely,
␈↓ ↓H␈↓SPECIALIZATIONS␈α⊂and␈α⊂DEMONS.␈α⊂ The␈α⊂SPECIALIZATIONS␈α⊂part␈α⊂says␈α⊂that␈α⊂to␈α⊂write␈α⊂a
␈↓ ↓H␈↓specific␈α⊂version␈α⊂of␈α⊂itself,␈α⊂a␈α⊂few␈α⊂decisions␈α⊂must␈α⊂be␈α⊂made.␈α⊂The␈α⊂results␈α⊂will
␈↓ ↓H␈↓then␈α∪indicate␈α∪what␈α∩pieces␈α∪of␈α∪code␈α∩get␈α∪assembled␈α∪together␈α∩to␈α∪form␈α∪the␈α∩new
␈↓ ↓H␈↓BEING.␈α~ The␈α~partition␈α~may␈α~be␈α≠only␈α~partial␈α~(an␈α~element␈α~of␈α≠the␈α~domain
␈↓ ↓H␈↓belongs␈α∀to␈α∀no␈α∀class␈α∀of␈α∀the␈α∀partition),␈α∀only␈α∀weak␈α∀(an␈α∀element␈α∀belongs␈α∀to
␈↓ ↓H␈↓more␈α∩than␈α⊃one␈α∩class),␈α∩and,␈α⊃most␈α∩importantly,␈α⊃the␈α∩specialized␈α∩BEING␈α⊃should
␈↓ ↓H␈↓work␈α⊃by␈α∩repeatedly␈α⊃doing␈α∩some␈α⊃of␈α∩the␈α⊃following␈α∩three␈α⊃activities:␈α∩accept␈α⊃a
␈↓ ↓H␈↓class-name␈α⊂from␈α⊂the␈α⊂user␈α⊂and␈α⊂guess␈α⊂some␈α⊂of␈α⊂its␈α⊂elements,␈α⊂accept␈α⊂an␈α⊂element
␈↓ ↓H␈↓from␈α∃the␈α∀user␈α∃and␈α∀try␈α∃to␈α∃guess␈α∀which␈α∃class␈α∀it␈α∃belongs␈α∀to,␈α∃or␈α∃accept␈α∀an
␈↓ ↓H␈↓<element,␈α≤class-name>␈α≤pair.␈α≤Other␈α≤BEINGs␈α≤know␈α≤about␈α≤these␈α≤accepting,
␈↓ ↓H␈↓guessing, checking activities.
␈↓ ↓H␈↓The␈α∪DEMONS␈α∪part␈α∩says␈α∪that␈α∪during␈α∩the␈α∪partitioning,␈α∪the␈α∩only␈α∪new␈α∪demon␈α∩to
␈↓ ↓H␈↓keep␈α⊂active␈α⊂is␈α⊂the␈α⊂one␈α⊂called␈α⊂Fringe_of_Consciousness.␈α⊂ This␈α⊂last␈α⊂concept,
␈↓ ↓H␈↓named␈α~parodically␈α~after␈α~an␈α~"impossibility"␈α~mentioned␈α~in␈α~[Dreyfus],␈α~is
␈↓ ↓H␈↓worth␈α∪exemplifying.␈α∪ In␈α∪the␈α∪course␈α∪of␈α∪writing␈α∪GI,␈α∪the␈α∪system␈α∪learns␈α∩that
␈↓ ↓H␈↓the␈α∩main␈α∩task␈α∩is␈α⊃one␈α∩of␈α∩grammatical␈α∩inference.␈α∩ The␈α⊃Grammatical_Inference
␈↓ ↓H␈↓BEING␈α∀then␈α∀asserts␈α∪that␈α∀if␈α∀the␈α∪user␈α∀ever␈α∀mentions␈α∪the␈α∀word␈α∀TEST,␈α∀he␈α∪may
␈↓ ↓H␈↓actually␈α∩mean␈α∪PARSE.␈α∩ This␈α∪is␈α∩placed␈α∪in␈α∩the␈α∪IDEN␈α∩part␈α∪of␈α∩the␈α∪TEST␈α∩BEING,
␈↓ ↓H␈↓and␈α≠is␈α≠therefore␈α≠only␈α≤demonized,␈α≠waiting␈α≠on␈α≠the␈α≠periphery␈α≤of␈α≠PUP6's
␈↓ ↓H␈↓concentration.␈α→ It␈α→is␈α_in␈α→fact␈α→triggered␈α→later␈α_in␈α→the␈α→dialogue,␈α→as␈α_an
␈↓ ↓H␈↓inference surprising to the user.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 12␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓4.4.␈α⊂ The␈α⊂dialogue␈α⊂to␈α⊂synthesize␈α⊂CF␈α⊂begins␈α⊂by␈α⊂PUP6␈α⊂asking␈α⊂the␈α⊂user␈α⊂for␈α⊂any
␈↓ ↓H␈↓task.␈α∞ The␈α∞user␈α∞replies,␈α∞␈↓βWrite␈α∞a␈α
program␈α∞which␈α∞does␈α∞concept␈α∞formation␈↓.␈α∞There␈α
are
␈↓ ↓H␈↓many␈α_decisions␈α_that␈α_PUP6␈α_knows␈α_about␈α_in␈α_writing␈α_a␈α_specialized␈α_concept
␈↓ ↓H␈↓formation␈α⊂program,␈α⊂and␈α⊂it␈α⊂manages␈α⊂to␈α⊂defer␈α⊂them␈α⊂all.␈α⊂ For␈α⊂example,␈α⊂it␈α⊂must
␈↓ ↓H␈↓choose␈α+between␈α+classificatory,␈α*comparative,␈α+and␈α+metrical␈α*concept
␈↓ ↓H␈↓formation.␈α⊂Since␈α⊂all␈α⊂three␈α⊂involve␈α⊂partitioning␈α⊂a␈α⊂domain␈α⊂of␈α⊂examples,␈α⊂PUP6
␈↓ ↓H␈↓decides␈α⊃it␈α∩can␈α⊃defer␈α⊃this␈α∩choice␈α⊃until␈α⊃after␈α∩code␈α⊃for␈α⊃the␈α∩partitioning␈α⊃is
␈↓ ↓H␈↓synthesized.␈α⊂ The␈α⊂effort␈α⊂of␈α⊂the␈α⊂system␈α⊂is␈α⊂now␈α⊂directed␈α⊂toward␈α⊂this␈α⊂"piece"
␈↓ ↓H␈↓of␈α∀the␈α∀program.␈α∪ When␈α∀it␈α∀is␈α∪completed,␈α∀an␈α∀hour␈α∪or␈α∀two␈α∀later,␈α∀the␈α∪system
␈↓ ↓H␈↓asks␈α⊃the␈α∩user␈α⊃to␈α⊃make␈α∩this␈α⊃decision.␈α⊃When␈α∩he␈α⊃picks␈α⊃the␈α∩first␈α⊃alternative,
␈↓ ↓H␈↓which␈α∀involves␈α∀␈↓βonly␈↓␈α∀partitioning,␈α∃the␈α∀system␈α∀prints␈α∀that␈α∀it␈α∃has␈α∀finished
␈↓ ↓H␈↓the entire CF task, and dumps the newly created BEINGs onto a file.
␈↓ ↓H␈↓4.5.␈α⊃Earlier,␈α∩the␈α⊃claim␈α⊃was␈α∩made␈α⊃that␈α⊃the␈α∩presence␈α⊃of␈α⊃popular␈α∩AI␈α⊃language
␈↓ ↓H␈↓features␈α∃did␈α∃not␈α∃detract␈α∃from␈α∀the␈α∃combinatorial␈α∃behavior␈α∃of␈α∃the␈α∀system,
␈↓ ↓H␈↓since␈α_BEINGs␈α_subsume␈α_each␈α_mechanaism␈α_used.␈α_This␈α_will␈α_now␈α_be␈α_sketched.
␈↓ ↓H␈↓Direct␈α∀call␈α∀by␈α∀name␈α∀may␈α∀be␈α∀viewed␈α∀as␈α∀a␈α∀trivial␈α∀type␈α∀of␈α∀pattern-directed
␈↓ ↓H␈↓call,␈α∀where␈α∀each␈α∪BEING␈α∀can␈α∀recognize␈α∪its␈α∀own␈α∀name.␈α∪See␈α∀the␈α∀IDEN␈α∀part␈α∪of
␈↓ ↓H␈↓the OBTAIN:USABLE:INFORMATION BEING, for example.
␈↓ ↓H␈↓A␈α⊂demon␈α⊂in␈α⊂PUP6␈α⊂is␈α⊂merely␈α⊂a␈α⊂function␈α⊂which␈α⊂gets␈α⊂executed␈α⊂periodically,␈α⊂and
␈↓ ↓H␈↓may␈α⊃occasionally␈α∩trigger␈α⊃a␈α⊃BEING.␈α∩This␈α⊃could␈α⊃be␈α∩replaced␈α⊃by␈α⊃a␈α∩BEING␈α⊃whose
␈↓ ↓H␈↓EXPLICIT:ARGS:CHECK␈α≠part␈α≤contains␈α≠the␈α≤triggering␈α≠predicate,␈α≤and␈α≠whose
␈↓ ↓H␈↓META:CODE␈α⊂is␈α⊂simply␈α⊂a␈α⊂call␈α⊂by␈α⊂name␈α⊂directly␈α⊂to␈α⊂the␈α⊂BEING␈α⊂which␈α⊂is␈α⊂supposed
␈↓ ↓H␈↓to be activated.
␈↓ ↓H␈↓An␈α∩assertion␈α∪can␈α∩be␈α∪viewed␈α∩as␈α∪a␈α∩BEING␈α∪containing␈α∩only␈α∪an␈α∩IDEN␈α∪part;␈α∩when
␈↓ ↓H␈↓the␈α≤BEING␈α≠recognizes␈α≤a␈α≤form␈α≠which␈α≤matches␈α≤it,␈α≠it␈α≤returns␈α≤the␈α≠fully
␈↓ ↓H␈↓instantiated assertion.
␈↓ ↓H␈↓A␈α⊃function␈α⊃is␈α⊃equivalent␈α∩to␈α⊃a␈α⊃BEING␈α⊃with␈α∩only␈α⊃a␈α⊃META:CODE␈α⊃part;␈α∩one␈α⊃knows
␈↓ ↓H␈↓nothing about it before executing it.
␈↓ ↓H␈↓Notice␈α∪that␈α∪the␈α∪overheads␈α∀saved␈α∪by␈α∪these␈α∪mechanisms␈α∪are␈α∀substantial.␈α∪For
␈↓ ↓H␈↓example,␈α assertions␈α replace␈α an␈α entire␈α BEING␈α call␈α by␈α a␈α single␈α CDR
␈↓ ↓H␈↓evaluation.
␈↓ ↓H␈↓The␈α⊗reader␈α⊗may␈α⊗have␈α⊗observed␈α∃the␈α⊗static␈α⊗quality␈α⊗of␈α⊗these␈α⊗examples,␈α∃and
␈↓ ↓H␈↓wished␈α↔for␈α↔one␈α⊗of␈α↔BEINGs␈α↔in␈α⊗action,␈α↔passing␈α↔control␈α⊗back␈α↔and␈α↔forth␈α⊗in
␈↓ ↓H␈↓order␈α→to␈α→do␈α_something.␈α→But␈α→to␈α→present␈α_a␈α→reasonable␈α→example␈α→of␈α_BEINGs
␈↓ ↓H␈↓interacting,␈α→it␈α→is␈α→necessary␈α→to␈α→understand␈α→something␈α→about␈α→the␈α_target
␈↓ ↓H␈↓task.␈α∪ Thus␈α∪we␈α∪describe␈α∪PUP6␈α∪in␈α∪the␈α∪following␈α∪section,␈α∪including␈α∪how␈α∩the
␈↓ ↓H␈↓target task CF evolved. Then comes the dynamic example, in section 6.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 13␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓5. THEORY: DESIGN␈↓
␈↓ ↓H␈↓A␈α↔highly␈α↔polished␈α_presentation␈α↔of␈α↔a␈α↔large␈α_system␈α↔omits␈α↔mention␈α_of␈α↔the
␈↓ ↓H␈↓design␈α∀and␈α∀implementation␈α∀mistakes.␈α∀ This␈α∀is␈α∀unfortunate;␈α∀many␈α∀decisions
␈↓ ↓H␈↓which␈α⊂seem␈α⊂arbitrary␈α⊂are␈α⊂the␈α⊂result␈α⊂of␈α⊂painful␈α⊂re-working,␈α⊂and␈α⊂conversely.
␈↓ ↓H␈↓The reader may relax; he will find nothing polished about this treatment.
␈↓ ↓H␈↓Once␈α↔the␈α↔task␈α↔(automatic␈α↔program␈α↔synthesis␈α↔from␈α↔specific␈α_dialogue)␈α↔was
␈↓ ↓H␈↓decided␈α∩upon,␈α∩considerable␈α∩attention␈α⊃was␈α∩spent␈α∩on␈α∩choosing␈α∩an␈α⊃appropriate
␈↓ ↓H␈↓domain␈α∀of␈α∪target␈α∀programs.␈α∪ The␈α∀choice,␈α∪inductive␈α∀inference␈α∀(II)␈α∪[Kant],
␈↓ ↓H␈↓merits␈α⊂discussion.␈α⊂ The␈α⊂obvious␈α⊂difficulty␈α⊂appears␈α⊂to␈α⊂be␈α⊂the␈α⊂complexity␈α⊂of
␈↓ ↓H␈↓the␈α∀programs␈α∃involved:␈α∀they␈α∀are␈α∃two␈α∀orders␈α∀of␈α∃magnitude␈α∀larger␈α∃than␈α∀any
␈↓ ↓H␈↓previously synthesized programs. But there are four big attractions:
␈↓ ↓H␈↓(i)␈α"A␈α!wide␈α"range␈α"of␈α!complexity␈α"exists,␈α!from␈α"a␈α"one-page␈α!sequence
␈↓ ↓H␈↓extrapolator to Meta-Dendral.
␈↓ ↓H␈↓(ii)␈α∩Each␈α⊃increasingly␈α∩sophisticated␈α∩II␈α⊃program␈α∩uses␈α⊃many␈α∩of␈α∩the␈α⊃concepts
␈↓ ↓H␈↓embodied in simpler II programs.
␈↓ ↓H␈↓(iii)␈α⊗If␈α⊗a␈α⊗super-human␈α⊗target␈α∃program␈α⊗is␈α⊗ever␈α⊗written,␈α⊗it␈α⊗could␈α∃itself
␈↓ ↓H␈↓contribute␈α∩to␈α⊃the␈α∩field␈α∩of␈α⊃Automatic␈α∩Programming!␈α⊃(For␈α∩those␈α∩reading␈α⊃this
␈↓ ↓H␈↓in␈α_the␈α_1970's,␈α_this␈α_is␈α_humorous.␈α_ For␈α_those␈α_later␈α_readers,␈α_it␈α_may␈α_be
␈↓ ↓H␈↓commonplace.)
␈↓ ↓H␈↓(iv)␈α⊃Since␈α∩we␈α⊃who␈α⊃write␈α∩AI␈α⊃(and␈α⊃especially␈α∩AP)␈α⊃programs␈α⊃are␈α∩the␈α⊃inductive
␈↓ ↓H␈↓inference␈α∩professionals,␈α⊃our␈α∩reliance␈α∩on␈α⊃introspection␈α∩is␈α⊃as␈α∩valid␈α∩--␈α⊃and
␈↓ ↓H␈↓potentially as valuable -- as chemists' protocols were to Dendral.
␈↓ ↓H␈↓After␈α"studying␈α"many␈α"sample␈α!programs␈α"from␈α"the␈α"II␈α"domain,␈α!sequence
␈↓ ↓H␈↓extrapolation␈α∀[Pilvar]␈α∪seemed␈α∀the␈α∪most␈α∀reasonable␈α∪beginning␈α∀task.␈α∀It␈α∪was
␈↓ ↓H␈↓quickly␈α⊃learned␈α∩that␈α⊃this␈α⊃was␈α∩too␈α⊃easy:␈α⊃humans␈α∩have␈α⊃only␈α⊃a␈α∩few␈α⊃techniques
␈↓ ↓H␈↓for␈α↔extrapolating␈α↔sequences,␈α↔and␈α↔a␈α↔very␈α↔limited␈α↔capacity␈α_for␈α↔composing
␈↓ ↓H␈↓them.␈α⊃ Thus␈α∩a␈α⊃rather␈α∩rigid␈α⊃sequence␈α∩extrapolator␈α⊃writer␈α∩may␈α⊃be␈α∩capable␈α⊃of
␈↓ ↓H␈↓generating␈α~a␈α→large␈α~class␈α~of␈α→super-human␈α~programs␈α→(see␈α~section␈α~4.2␈α→on
␈↓ ↓H␈↓Sequence-Extrapolator-Writer, in [Green]).
␈↓ ↓H␈↓The␈α~next␈α~candidates␈α~were␈α~grammatical␈α~inference␈α~and␈α~concept␈α~formation.
␈↓ ↓H␈↓Determined␈α∪not␈α∪to␈α∩choose␈α∪too␈α∪simple␈α∩a␈α∪task␈α∪again,␈α∩the␈α∪latter␈α∪program␈α∩was
␈↓ ↓H␈↓finally␈α∪decided␈α∪upon.␈α∪ The␈α∀particular␈α∪target␈α∪was␈α∪a␈α∪variant␈α∀of␈α∪[Winston].
␈↓ ↓H␈↓To␈α∃make␈α∃the␈α∃goal␈α∃more␈α∀tractable,␈α∃certain␈α∃parts␈α∃of␈α∃Winston's␈α∀description
␈↓ ↓H␈↓were␈α ignored,␈α namely␈α the␈α heuristic␈α graph-matching␈α section,␈α and␈α the
␈↓ ↓H␈↓uniformity␈α%requirement␈α$that␈α%relations␈α$on␈α%features␈α%be␈α$functionally
␈↓ ↓H␈↓indistinguishable␈α⊂from␈α⊂features.␈α⊂ This␈α⊂last␈α⊂phrase␈α⊂means␈α⊂that␈α⊂CF␈α⊂can␈α⊂store
␈↓ ↓H␈↓(MUSTNOT␈α↔(SUPPORTS␈α↔a␈α↔b))␈α↔differently␈α↔from␈α↔the␈α↔representation␈α_of␈α↔simple
␈↓ ↓H␈↓features like (TOUCHES a c).
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 14␈↓ @THEORY: DESIGN
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓It␈α≥seems␈α≥instructive␈α≥now␈α≥to␈α≤describe␈α≥how␈α≥the␈α≥target␈α≥program␈α≤should
␈↓ ↓H␈↓operate.␈α∀It␈α∀repeatedly␈α∪scans␈α∀a␈α∀scene␈α∪and␈α∀tries␈α∀to␈α∪name␈α∀it.␈α∀The␈α∀scene␈α∪is
␈↓ ↓H␈↓broken␈α⊗into␈α⊗a␈α∃set␈α⊗of␈α⊗features␈α⊗and␈α∃a␈α⊗set␈α⊗of␈α∃objects.␈α⊗Each␈α⊗feature␈α⊗is␈α∃a
␈↓ ↓H␈↓relation␈α⊗on␈α⊗one␈α⊗or␈α⊗more␈α∃objects␈α⊗in␈α⊗the␈α⊗scene.␈α⊗ Internally,␈α⊗the␈α∃program
␈↓ ↓H␈↓maintains␈α"a␈α"model␈α"for␈α!each␈α"differently-named␈α"concept␈α"it␈α"has␈α!ever
␈↓ ↓H␈↓encountered.␈α∩ The␈α⊃model␈α∩contains␈α∩a␈α⊃description␈α∩of␈α⊃the␈α∩objects␈α∩expected␈α⊃in
␈↓ ↓H␈↓the␈α∩scene,␈α∩a␈α∪set␈α∩of␈α∩features␈α∪which␈α∩must␈α∩be␈α∩present␈α∪in␈α∩the␈α∩scene␈α∪(else␈α∩it
␈↓ ↓H␈↓can't␈α∪be␈α∀the␈α∪same␈α∀as␈α∪this␈α∀concept),␈α∪a␈α∪set␈α∀of␈α∪features␈α∀which␈α∪must␈α∀not␈α∪be
␈↓ ↓H␈↓present␈α_in␈α_the␈α_scene,␈α_and␈α_a␈α_set␈α_of␈α_features␈α_which␈α_may␈α_or␈α_may␈α_not␈α_be
␈↓ ↓H␈↓present.␈α∃ Thus␈α⊗a␈α∃model␈α∃is␈α⊗like␈α∃an␈α∃archtypical␈α⊗scene␈α∃plus␈α∃a␈α⊗name.␈α∃ Each
␈↓ ↓H␈↓time␈α∩the␈α∪program␈α∩is␈α∪confronted␈α∩by␈α∪a␈α∩new␈α∪scene,␈α∩the␈α∪program␈α∩must␈α∪scan␈α∩its
␈↓ ↓H␈↓models␈α⊃until␈α⊃it␈α⊃finds␈α∩one␈α⊃which␈α⊃matches␈α⊃it.␈α∩That␈α⊃is,␈α⊃all␈α⊃the␈α∩model's␈α⊃MUST
␈↓ ↓H␈↓features␈α⊗are␈α⊗present,␈α⊗and␈α⊗all␈α∃the␈α⊗MUSTNOT␈α⊗features␈α⊗are␈α⊗absent␈α⊗from␈α∃the
␈↓ ↓H␈↓observed␈α⊃scene.␈α∩It␈α⊃informs␈α⊃the␈α∩user␈α⊃of␈α⊃this␈α∩guess,␈α⊃and␈α⊃accepts␈α∩the␈α⊃proper
␈↓ ↓H␈↓concept␈α⊂name.␈α⊂If␈α⊂it␈α⊂guessed␈α⊂incorrectly,␈α⊂it␈α⊂modifies␈α⊂its␈α⊂models.␈α⊂The␈α⊂wrong
␈↓ ↓H␈↓guess␈α_model␈α_may␈α_have␈α_features␈α_added␈α_to␈α_its␈α_MUST␈α_or␈α_MUSTNOT␈α_sets;␈α_the
␈↓ ↓H␈↓correct␈α↔concept␈α_name␈α↔model␈α↔may␈α_have␈α↔to␈α_be␈α↔modified␈α↔or␈α_(if␈α↔it's␈α_a␈α↔new
␈↓ ↓H␈↓concept)␈α⊃created␈α∩and␈α⊃inserted␈α∩into␈α⊃the␈α∩list␈α⊃of␈α∩models.␈α⊃ See␈α∩the␈α⊃flowchart
␈↓ ↓H␈↓on page A4.7.
␈↓ ↓H␈↓For example, a scene might be: OBJECTS a,b,c,d
␈↓ ↓H␈↓ (GREEN a)(BLUE c)(TOUCHING c d)(SUPPORTS a c)(SUPPORTS b c).
␈↓ ↓H␈↓A model for an arch might be: OBJECTS a,b,c
␈↓ ↓H␈↓ MUST (SUPPORTS a c)(SUPPORTS b c)
␈↓ ↓H␈↓ MUSTNOT (TOUCHES a b)
␈↓ ↓H␈↓ MAY (GREEN a)(WEDGE c)(PRISM a)(BLOCK b)(PARALLEL a b)
␈↓ ↓H␈↓Suppose␈α↔that␈α↔the␈α⊗target␈α↔program␈α↔reads␈α⊗in␈α↔the␈α↔above␈α⊗scene␈α↔and␈α↔tries␈α⊗to
␈↓ ↓H␈↓match␈α∀it␈α∃to␈α∀the␈α∀above␈α∃model␈α∀for␈α∀consistency.␈α∃ The␈α∀MUST␈α∃relations␈α∀should
␈↓ ↓H␈↓all␈α⊃be␈α∩present.␈α⊃ Yes,␈α⊃the␈α∩scene␈α⊃does␈α⊃contain␈α∩(SUPPORTS␈α⊃a␈α⊃c)␈α∩and␈α⊃(SUPPORTS
␈↓ ↓H␈↓b␈α↔c).␈α↔Next,␈α⊗the␈α↔MUSTNOT␈α↔relations␈α⊗must␈α↔be␈α↔absent␈α⊗from␈α↔the␈α↔scene.␈α⊗Sure
␈↓ ↓H␈↓enough,␈α⊂(TOUCHES␈α⊂a␈α⊂b)␈α⊂isn't␈α⊂there.␈α⊂ So␈α⊂the␈α⊂model␈α⊂and␈α⊂scene␈α⊂are␈α⊂consistent.
␈↓ ↓H␈↓If␈α⊃the␈α⊃user␈α⊃verifies␈α∩this␈α⊃guess,␈α⊃then␈α⊃the␈α∩MAY␈α⊃set␈α⊃is␈α⊃augmented␈α∩with␈α⊃(BLUE
␈↓ ↓H␈↓c)␈α∩and␈α∩(TOUCHING␈α∪c␈α∩d),␈α∩and␈α∪the␈α∩OBJECTS␈α∩set␈α∩is␈α∪augmented␈α∩with␈α∩"d."␈α∪If␈α∩the
␈↓ ↓H␈↓user␈α∀denies␈α∀that␈α∪the␈α∀scene␈α∀is␈α∪an␈α∀arch,␈α∀the␈α∪target␈α∀program␈α∀sees␈α∀if␈α∪there
␈↓ ↓H␈↓are␈α⊃any␈α⊃relations␈α⊃in␈α⊃the␈α⊃model's␈α∩MAY␈α⊃set␈α⊃which␈α⊃do␈α⊃not␈α⊃occur␈α⊃in␈α∩the␈α⊃scene.
␈↓ ↓H␈↓If␈α⊂so,␈α⊂one␈α⊂of␈α⊂them␈α⊂(e.g.,␈α⊂(PARALLEL␈α⊂a␈α⊂b))␈α⊂will␈α⊂be␈α⊂transferred␈α⊂from␈α⊂the␈α⊂MAY
␈↓ ↓H␈↓to␈α⊂the␈α⊂MUST␈α⊂set.␈α⊂ If␈α⊂no␈α⊂such␈α⊂feature␈α⊂existed,␈α⊂the␈α⊂program␈α⊂would␈α⊂look␈α⊂for␈α⊂a
␈↓ ↓H␈↓feature␈α⊃present␈α⊃in␈α⊃the␈α∩scene␈α⊃but␈α⊃absent␈α⊃from␈α∩all␈α⊃sets␈α⊃of␈α⊃the␈α∩model␈α⊃(e.g.,
␈↓ ↓H␈↓(BLUE␈α≤c)),␈α≤and␈α≤insert␈α≤it␈α≤into␈α≤the␈α≤MUSTNOT␈α≤set.␈α≤ Also,␈α≤if␈α≤the␈α≤user
␈↓ ↓H␈↓disagreed␈α⊗with␈α⊗the␈α⊗guess,␈α⊗he␈α⊗would␈α↔be␈α⊗asked␈α⊗what␈α⊗the␈α⊗true␈α⊗name␈α↔of␈α⊗the
␈↓ ↓H␈↓concept␈α⊃was,␈α∩and␈α⊃that␈α⊃concept's␈α∩model␈α⊃would␈α⊃have␈α∩its␈α⊃MAY␈α⊃set␈α∩augmented␈α⊃by
␈↓ ↓H␈↓any␈α∀new␈α∀features␈α∪in␈α∀the␈α∀scene.␈α∪Any␈α∀features␈α∀on␈α∪its␈α∀MUST␈α∀or␈α∀MUSTNOT␈α∪sets
␈↓ ↓H␈↓which contradicted the scene would be transferred to the MAY set.
␈↓ ↓H␈↓After␈α∪the␈α∪target␈α∪concept␈α∀formation␈α∪program␈α∪was␈α∪specified,␈α∪it␈α∀was␈α∪trimmed
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 15␈↓ @THEORY: DESIGN
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓and␈α~then␈α→rewritten␈α~as␈α~a␈α→structured␈α~program␈α→[Gadwa].␈α~Next,␈α~a␈α→complete
␈↓ ↓H␈↓dialogue␈α∪was␈α∪simulated␈α∪between␈α∀the␈α∪user␈α∪and␈α∪a␈α∪human␈α∀programmer␈α∪(referred
␈↓ ↓H␈↓to␈α∃as␈α∃the␈α∃system-player)␈α∃playing␈α∀the␈α∃role␈α∃of␈α∃an␈α∃"intelligent"␈α∀automatic
␈↓ ↓H␈↓programming␈α∀system␈α∀(similar␈α∀to,␈α∀e.g.,␈α∀[Balzer]).␈α∀ The␈α∀system-player␈α∀kept
␈↓ ↓H␈↓careful␈α records␈α as␈α he␈α programmed,␈α and␈α tried␈α to␈α create␈α a␈α bug-free
␈↓ ↓H␈↓structured␈α→program.␈α→ The␈α→dialogue␈α→was␈α→then␈α→annotated:␈α→after␈α→each␈α_user
␈↓ ↓H␈↓response,␈α∩comments␈α∩were␈α∩inserted␈α⊃which␈α∩described␈α∩the␈α∩"states"␈α∩the␈α⊃system-
␈↓ ↓H␈↓player␈α∩had␈α⊃gone␈α∩through␈α∩before␈α⊃printing␈α∩his␈α⊃next␈α∩response.␈α∩ This␈α⊃included
␈↓ ↓H␈↓blind␈α↔paths␈α↔which␈α_were␈α↔tried,␈α↔use␈α↔of␈α_outside␈α↔world␈α↔knowledge,␈α_and,␈α↔in
␈↓ ↓H␈↓general,␈α⊂was␈α⊂meant␈α⊂to␈α⊂be␈α⊂the␈α⊂"intelligence"␈α⊂necessary␈α⊂to␈α⊂do␈α⊂the␈α⊂task.␈α⊂ The
␈↓ ↓H␈↓fear␈α~was␈α~that␈α~a␈α~system␈α≠could␈α~be␈α~built␈α~which␈α~synthesized␈α≠the␈α~concept
␈↓ ↓H␈↓formation␈α∪program,␈α∪and␈α∪yet␈α∀was␈α∪so␈α∪unintelligent␈α∪that␈α∪nothing␈α∀was␈α∪learned
␈↓ ↓H␈↓from␈α∀it.␈α∃(see␈α∀section␈α∀4.1␈α∃on␈α∀PW1,␈α∀for␈α∃example,␈α∀in␈α∃[Green]).␈α∀ Hopefully,
␈↓ ↓H␈↓any␈α∪system␈α∪which␈α∪(i)␈α∪got␈α∪the␈α∪target␈α∪program␈α∪correctly,␈α∪(ii)␈α∪followed␈α∩our
␈↓ ↓H␈↓initial␈α∩dialogue,␈α⊃and,␈α∩most␈α∩importantly,␈α⊃(iii)␈α∩went␈α⊃through␈α∩the␈α∩same␈α⊃line
␈↓ ↓H␈↓of␈α⊂reasoning␈α⊂that␈α⊂our␈α⊂comments␈α⊂indicated␈α⊂the␈α⊂system-player␈α⊂followed,␈α⊂would
␈↓ ↓H␈↓be␈α"far␈α!along␈α"the␈α"road␈α!toward␈α"intelligence.␈α! A␈α"corollary␈α"of␈α!this
␈↓ ↓H␈↓incremental␈α∩annotated␈α⊃protocol␈α∩approach␈α∩is␈α⊃that␈α∩the␈α⊃abilities␈α∩of␈α∩the␈α⊃user
␈↓ ↓H␈↓must␈α∪coincide␈α∪with␈α∪those␈α∪of␈α∪the␈α∪subject␈α∪who␈α∪participated␈α∪in␈α∪the␈α∩protocol
␈↓ ↓H␈↓(see␈α≥also␈α≥[Woods]).␈α≥The␈α≥system␈α≥would␈α≥be␈α≥far␈α≥along␈α≥the␈α≡road␈α≥toward
␈↓ ↓H␈↓automatic␈α∀programming␈α∀if␈α∀it␈α∀also␈α∀(iv)␈α∀was␈α∀able␈α∀to␈α∀write␈α∀CF␈α∀from␈α∀several
␈↓ ↓H␈↓dialogues,␈α≠from␈α≠several␈α~users,␈α≠with␈α≠little␈α~preparation.␈α≠PUP6␈α≠was␈α~not
␈↓ ↓H␈↓designed to do this, and in the end it proved to be a serious deficit.
␈↓ ↓H␈↓The␈α_target␈α_user␈α_must␈α_be␈α_familiar␈α_with␈α_LISP,␈α_well-grounded␈α_in␈α_computer
␈↓ ↓H␈↓science,␈α∩and␈α⊃have␈α∩the␈α∩input/output␈α⊃behavior␈α∩of␈α⊃the␈α∩concept␈α∩formation␈α⊃(CF)
␈↓ ↓H␈↓program␈α∃very␈α⊗clearly␈α∃in␈α∃his␈α⊗mind.␈α∃The␈α∃natural␈α⊗language␈α∃front␈α∃end␈α⊗is␈α∃so
␈↓ ↓H␈↓brittle␈α⊗that␈α⊗the␈α⊗user␈α⊗must␈α∃also␈α⊗phrase␈α⊗his␈α⊗responses␈α⊗very␈α⊗similarly␈α∃to
␈↓ ↓H␈↓those␈α∀of␈α∪the␈α∀original␈α∪protocol␈α∀subject.␈α∪ This␈α∀factor␈α∀prevented␈α∪dialogues
␈↓ ↓H␈↓from multiple users from being successful.
␈↓ ↓H␈↓At␈α≥this␈α≥point,␈α≥most␈α≥of␈α≥the␈α≥ideas␈α≥described␈α≥in␈α≥section␈α≡3␈α≥surfaced,
␈↓ ↓H␈↓including␈α⊃a␈α⊃rough␈α⊃initial␈α∩set␈α⊃of␈α⊃BEINGs.␈α⊃ Each␈α∩one␈α⊃had␈α⊃not␈α⊃much␈α∩more␈α⊃than
␈↓ ↓H␈↓a␈α↔name␈α_and␈α↔a␈α↔vague␈α_description␈α↔of␈α_what␈α↔it␈α↔must␈α_do.␈α↔ The␈α_dialogue␈α↔was
␈↓ ↓H␈↓cycled␈α∪through␈α∪again,␈α∪painstakingly,␈α∀and␈α∪the␈α∪comments␈α∪were␈α∪replaced␈α∀by␈α∪a
␈↓ ↓H␈↓description␈α∀of␈α∃which␈α∀BEINGs␈α∀would␈α∃call␈α∀which␈α∀other␈α∃BEINGs,␈α∀why,␈α∃and␈α∀the
␈↓ ↓H␈↓results␈α→of␈α→each␈α_such␈α→call.␈α→ The␈α→constraints␈α_on␈α→each␈α→BEING␈α→thus␈α_grew,
␈↓ ↓H␈↓sometimes␈α∀changed,␈α∀and␈α∀occasionally␈α∀a␈α∀new␈α∀BEING␈α∀or␈α∀BEING␈α∀part␈α∀had␈α∀to␈α∀be
␈↓ ↓H␈↓added␈α⊃to␈α∩the␈α⊃community.␈α⊃ This␈α∩process␈α⊃was␈α⊃long␈α∩(200␈α⊃hours)␈α⊃and␈α∩produced␈α⊃a
␈↓ ↓H␈↓long␈α∪(200-page)␈α∪protocol,␈α∪actually␈α∀a␈α∪hand␈α∪trace␈α∪of␈α∪the␈α∀system␈α∪execution.
␈↓ ↓H␈↓About␈α⊂eighty␈α⊂BEINGs␈α⊂were␈α⊂needed:␈α⊂a␈α⊂dozen␈α⊂domain-specific␈α⊂ones␈α⊂and␈α⊂the␈α⊂rest
␈↓ ↓H␈↓domain-independent␈α_programming␈α_knowledge.␈α_ About␈α_thirty␈α_different␈α_BEING
␈↓ ↓H␈↓parts␈α→were␈α~called␈α→for,␈α→and␈α~they␈α→are␈α→listed␈α~in␈α→Appendix␈α→1.␈α~ The␈α→next
␈↓ ↓H␈↓appendix␈α∀describes␈α∪each␈α∀BEING␈α∪briefly;␈α∀only␈α∪the␈α∀most␈α∀important␈α∪knowledge
␈↓ ↓H␈↓is mentioned.
␈↓ ↓H␈↓A␈α⊗result␈α⊗of␈α⊗this␈α⊗method␈α∃of␈α⊗incremental␈α⊗specification␈α⊗of␈α⊗BEINGs␈α⊗is␈α∃that
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 16␈↓ @THEORY: DESIGN
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓each␈α⊂BEING␈α⊂has␈α⊂only␈α⊂those␈α⊂parts␈α⊂which␈α⊂are␈α⊂going␈α⊂to␈α⊂be␈α⊂used␈α⊂sometime␈α⊂during
␈↓ ↓H␈↓the␈α∪ensuing␈α∪dialogue.␈α∪This␈α∪seemed␈α∪too␈α∪specific,␈α∪so␈α∪some␈α∪effort␈α∪was␈α∩spent
␈↓ ↓H␈↓filling␈α⊗out␈α↔parts␈α⊗that␈α↔weren't␈α⊗strictly␈α⊗necessary␈α↔to␈α⊗write␈α↔the␈α⊗concept
␈↓ ↓H␈↓formation␈α∩program.␈α∩ Perhaps␈α∩more␈α⊃careful␈α∩attention␈α∩to␈α∩this␈α∩activity␈α⊃would
␈↓ ↓H␈↓have␈α⊃made␈α∩the␈α⊃system␈α⊃more␈α∩tolerant␈α⊃of␈α⊃changes␈α∩in␈α⊃the␈α⊃dialogue.␈α∩During␈α⊃the
␈↓ ↓H␈↓course␈α⊃of␈α∩massaging␈α⊃PUP6␈α∩into␈α⊃writing␈α∩the␈α⊃other␈α∩target␈α⊃programs,␈α∩very␈α⊃few
␈↓ ↓H␈↓additional␈α⊃parts␈α∩had␈α⊃to␈α∩be␈α⊃added␈α∩to␈α⊃existing␈α∩BEINGs.␈α⊃Typically,␈α∩either␈α⊃an
␈↓ ↓H␈↓old␈α⊃part␈α⊃had␈α⊃to␈α∩be␈α⊃generalized␈α⊃or␈α⊃else␈α∩a␈α⊃new␈α⊃BEING␈α⊃created.␈α∩After␈α⊃writing
␈↓ ↓H␈↓CF, GI, and INF, there are now an even hundred BEINGs in PUP6.
␈↓ ↓H␈↓The␈α⊂data␈α⊂on␈α⊂how␈α⊂filled␈α⊂out␈α⊂each␈α⊂BEING␈α⊂was␈α⊂--␈α⊂and␈α⊂had␈α⊂to␈α⊂be␈α⊂--␈α⊂is␈α⊂presented
␈↓ ↓H␈↓in␈α⊂several␈α⊂forms,␈α⊂here␈α⊂and␈α⊂in␈α⊂the␈α⊂appendices.␈α⊂ In␈α⊂Appendix␈α⊂1,␈α⊂next␈α⊂to␈α⊂each
␈↓ ↓H␈↓BEING␈α≠part␈α≠is␈α~the␈α≠percentage␈α≠of␈α~BEINGs␈α≠which␈α≠had␈α~to␈α≠have␈α≠this␈α~part
␈↓ ↓H␈↓specified␈α∪for␈α∪them.␈α∪Appendix␈α∪3␈α∪reveals␈α∪how␈α∪each␈α∪BEING␈α∪was␈α∪actually␈α∩used,
␈↓ ↓H␈↓including␈α∪the␈α∪number␈α∩of␈α∪its␈α∪BEING␈α∩parts␈α∪which␈α∪exist␈α∩and␈α∪were␈α∪called␈α∩upon
␈↓ ↓H␈↓during␈α∩a␈α∪dialogue.␈α∩On␈α∪the␈α∩average,␈α∪each␈α∩BEING␈α∪part␈α∩was␈α∪present␈α∩in␈α∪36%␈α∩of
␈↓ ↓H␈↓all␈α⊃BEINGs,␈α⊃and,␈α⊃also␈α⊃on␈α⊃the␈α∩average,␈α⊃each␈α⊃BEING␈α⊃had␈α⊃10.5␈α⊃of␈α⊃its␈α∩29␈α⊃parts
␈↓ ↓H␈↓specified.␈α∃This␈α⊗says␈α∃that␈α∃each␈α⊗BEING␈α∃was␈α∃actually␈α⊗asked␈α∃a␈α∃third␈α⊗of␈α∃all
␈↓ ↓H␈↓possible␈α∪questions␈α∪and␈α∩that␈α∪each␈α∪question␈α∩was␈α∪needed␈α∪in␈α∩about␈α∪a␈α∪third␈α∩of
␈↓ ↓H␈↓all the BEINGs.
␈↓ ↓H␈↓The␈α⊃principle␈α∩that␈α⊃"everything␈α∩is␈α⊃BEINGs"␈α∩was␈α⊃relaxed␈α∩in␈α⊃the␈α∩interests␈α⊃of
␈↓ ↓H␈↓absolute␈α⊂CPU␈α⊂time␈α⊂and␈α⊂feasibility␈α⊂of␈α⊂coding.␈α⊂ Besides␈α⊂BEINGs,␈α⊂PUP6␈α⊂employs
␈↓ ↓H␈↓functions,␈α∀demons␈α∪and␈α∀an␈α∪assertional␈α∀data␈α∪base.␈α∀ During␈α∀the␈α∪programming,
␈↓ ↓H␈↓100␈α∃small␈α∃functions␈α∃were␈α∃written␈α∀to␈α∃supplement␈α∃the␈α∃language.␈α∃ Most␈α∀were
␈↓ ↓H␈↓typical␈α∃current␈α∀AI␈α∃language␈α∀features␈α∃[Bobrow]␈α∃(pattern-matching,␈α∀demons,
␈↓ ↓H␈↓special␈α∩data␈α∩types),␈α∩or␈α⊃tiny␈α∩additions␈α∩to␈α∩INTERLISP␈α∩[Teitelman]␈α⊃(flatten,
␈↓ ↓H␈↓set-difference),␈α⊂or␈α⊂functions␈α⊂which␈α⊂manage␈α⊂BEINGs␈α⊂(add-a-new-being,␈α⊂print-
␈↓ ↓H␈↓a-being's-parts).␈α⊂ Many␈α⊂of␈α⊂these␈α⊂features␈α⊂were␈α⊂simplified␈α⊂(and␈α⊂speeded␈α⊂up)
␈↓ ↓H␈↓by␈α⊂using␈α⊂the␈α⊂knowledge␈α⊂that␈α⊂PUP6␈α⊂was␈α⊂to␈α⊂be␈α⊂an␈α⊂AP␈α⊂system.␈α⊂ For␈α⊂example,␈α⊂all
␈↓ ↓H␈↓the␈α∃different␈α⊗types␈α∃of␈α∃assertions␈α⊗that␈α∃an␈α∃AP␈α⊗system␈α∃might␈α∃want␈α⊗to␈α∃make
␈↓ ↓H␈↓deal␈α⊃with␈α∩different␈α⊃concerns␈α∩of␈α⊃programming.␈α∩ Thus␈α⊃a␈α∩group␈α⊃of␈α∩about␈α⊃forty
␈↓ ↓H␈↓different␈α⊗assertion␈α↔patterns␈α⊗could␈α↔be␈α⊗fixed,␈α⊗each␈α↔one␈α⊗becoming␈α↔a␈α⊗named
␈↓ ↓H␈↓list;␈α$this␈α$almost␈α$eliminated␈α$searching␈α$during␈α$retrieval␈α$from␈α$the
␈↓ ↓H␈↓assertional base.
␈↓ ↓H␈↓The␈α⊃initial␈α∩programming␈α⊃took␈α∩only␈α⊃a␈α∩hundred␈α⊃hours,␈α∩but␈α⊃several␈α∩times␈α⊃that
␈↓ ↓H␈↓amount␈α⊂of␈α⊂work␈α⊂was␈α⊂required␈α⊂before␈α⊂the␈α⊂system␈α⊂was␈α⊂debugged␈α⊂to␈α⊂the␈α⊂point␈α⊂of
␈↓ ↓H␈↓successfully following the annotated dialogue.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 17␈↓ @THEORY: DESIGN
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓6. REALITY: EXAMPLES␈↓
␈↓ ↓H␈↓An␈α≤example␈α≠of␈α≤the␈α≤PUP6␈α≠community␈α≤of␈α≤BEINGs␈α≠interacting␈α≤will␈α≤now␈α≠be
␈↓ ↓H␈↓presented.␈α⊃Let's␈α∩jump␈α⊃one␈α⊃third␈α∩of␈α⊃the␈α⊃way␈α∩into␈α⊃the␈α⊃dialogue␈α∩which␈α⊃writes
␈↓ ↓H␈↓CF.␈α≥The␈α≥system␈α≥learns␈α≥it␈α≥must␈α≥compare␈α≥the␈α≥input␈α≥scene␈α≡against␈α≥its
␈↓ ↓H␈↓internally␈α⊗stored␈α↔models␈α⊗of␈α↔concepts,␈α⊗until␈α⊗it␈α↔finds␈α⊗one␈α↔which␈α⊗doesn't
␈↓ ↓H␈↓fail␈α∩the␈α∩comparison.␈α∪ It␈α∩asks␈α∩the␈α∪user␈α∩what␈α∩it␈α∩means␈α∪for␈α∩scene␈α∩S␈α∪to␈α∩fail
␈↓ ↓H␈↓the comparison to model M. The user replies,
␈↓ ↓H␈↓␈↓βM is incompatible with the observed features of S␈↓.
␈↓ ↓H␈↓ The␈α∩IDEN␈α⊃part␈α∩of␈α∩the␈α⊃CONTRADICTS␈α∩BEING␈α⊃recognizes␈α∩this␈α∩sentence␈α⊃pattern,
␈↓ ↓H␈↓and transforms it to
␈↓ ↓H␈↓(FORSOME F IN M_FEATURES (specialized:CONTRADICTS F S_FEATURES)).
␈↓ ↓H␈↓ The BEING
␈↓ ↓H␈↓which inserts this into the synthesized code requires that the user
␈↓ ↓H␈↓pick some proper name for the function specialized:CONTRADICTS;
␈↓ ↓H␈↓this will be a streamlined contradiction test written by the
␈↓ ↓H␈↓CONTRADICTS BEING. Say the user reponds by calling it
␈↓ ↓H␈↓#. The function FORSOME is so primitive that no specialized
␈↓ ↓H␈↓version of it is written normally.
␈↓ ↓H␈↓ The system informs the user of
␈↓ ↓H␈↓where it is by simulating a cursor pointing into a graph of program
␈↓ ↓H␈↓code. This is analogous to the textual and dynamic indices which
␈↓ ↓H␈↓[Dijkstra] suggests.
␈↓ ↓H␈↓ Later in the dialogue, PUP6 decides it must
␈↓ ↓H␈↓expand the function #. The CONTRADICTS BEING is again called on; this
␈↓ ↓H␈↓time it is asked how to write a specialized version of a
␈↓ ↓H␈↓contradiction test. It replies that SOME_OF the following types of
␈↓ ↓H␈↓contradiction may occur: PROBABILITY:0, PROBABILITY:1, and
␈↓ ↓H␈↓PROBABILITY:ε(0,1). This is the germ of the idea for the
␈↓ ↓H␈↓MUSTNOT/MUST/MAY categorization of features. The SOME_OF BEING takes
␈↓ ↓H␈↓control, and asks if the decision can be deferred. The DEFERRAL
␈↓ ↓H␈↓BEING looks about, first asking if there is any non-null piece of
␈↓ ↓H␈↓code that all three have in common. This fails, and eventually the
␈↓ ↓H␈↓DEFERRAL BEING reports failure. SOME_OF sees it has no basis upon
␈↓ ↓H␈↓which to form a guess, and wants somebody to ask the user. The
␈↓ ↓H␈↓ASK_USER BEING takes over, and quickly finds out what it is that PUP6
␈↓ ↓H␈↓wants to learn. The names of the three choices are so cryptic that
␈↓ ↓H␈↓their WHAT and HOW parts are printed out to the user, as well as
␈↓ ↓H␈↓their names. The user types back his choices, in our case all three.
␈↓ ↓H␈↓SOME_OF composes three new function calls, separated by a
␈↓ ↓H␈↓conditional:
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 18␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓(COND ( (IS_OF_TYPE F PROBABILITY:0_PART_OF_M_FEATURES)
␈↓ ↓H␈↓ (PROBABILITY:0_# F S_FEATURES))
␈↓ ↓H␈↓ ( (IS_OF_TYPE F PROBABILITY:1_PART_OF_M_FEATURES)
␈↓ ↓H␈↓ (PROBABILITY:1_# F S_FEATURES))
␈↓ ↓H␈↓ ( (IS_OF_TYPE F PROBABILITYε(0,1)_PART_OF_M_FEATURES)
␈↓ ↓H␈↓ (PROBABILITYε(0,1)_# F S_FEATURES)))
␈↓ ↓H␈↓TRICHOTOMY recognizes this as a split on a function's values
␈↓ ↓H␈↓being =0, =1, or between zero and one. It asks whether this
␈↓ ↓H␈↓particular function can only range over the interval [0,1].
␈↓ ↓H␈↓PROBABILITY answers affirmatively, so SOME_OF replaces the final
␈↓ ↓H␈↓IS_OF_TYPE test by the constant T. Later on, PUP6 must worry about
␈↓ ↓H␈↓the other two tests, and about the three contradiction predicates.
␈↓ ↓H␈↓These latter entities know (their ENCODABLE parts tell them) that
␈↓ ↓H␈↓they are immediately encodable. A probability=0 contradiction means
␈↓ ↓H␈↓that arg1 must not occur in the world arg2 yet it does. So the
␈↓ ↓H␈↓META-CODE of the PROBABILITY:0_CONTRADICTION BEING is defined as
␈↓ ↓H␈↓(MEMBER arg1 arg2). This corresponds to a MUSTNOT feature F which is
␈↓ ↓H␈↓present in the world (in the set of S_FEATURES of the scene.) A
␈↓ ↓H␈↓probability=1 contradiction occurs when a feature arg1 must occur in
␈↓ ↓H␈↓the world arg2, yet it doesn't. So its definition is simply (NOT
␈↓ ↓H␈↓(MEMBER arg1 arg2)). It is impossible for a feature with probability
␈↓ ↓H␈↓in (0,1) to be in contradiction with any world (lacking negated
␈↓ ↓H␈↓features), so this third predicate is defined as the constant NIL.
␈↓ ↓H␈↓That is, if F is a MAY feature of the model M, then there can be no
␈↓ ↓H␈↓contradiction between F and ␈↓βany␈↓ features of the scene S.
␈↓ ↓H␈↓ When a BEING is said to do or recognize or know something, as
␈↓ ↓H␈↓in the preceding and following paragraphs, what is actually meant is
␈↓ ↓H␈↓that one or more of its parts specificly encode that knowledge. All
␈↓ ↓H␈↓the parts of the hundred BEINGs in PUP6 were coded by hand, not by
␈↓ ↓H␈↓each other. They then can encode other BEINGs, interacting only via
␈↓ ↓H␈↓the dialogue.
␈↓ ↓H␈↓ The IS_OF_TYPE BEING recognizes that it must work hard to
␈↓ ↓H␈↓replace each of the two case tests, unless M_FEATURES is organized
␈↓ ↓H␈↓permanently into three parts (thus permitting the complex function
␈↓ ↓H␈↓"IS_OF_TYPE" to be replaced by the simple one "MEMBER" in the above
␈↓ ↓H␈↓piece of code). The STRUCTURE_INDUCING BEING will take over, to probe
␈↓ ↓H␈↓the permissability and the difficulty of such a constraint. It finds
␈↓ ↓H␈↓nothing about this tripartite structuring which could damage any
␈↓ ↓H␈↓earlier synthesized code, and asks the user's blessing. Notes are
␈↓ ↓H␈↓added to the list of coding warnings, stating that any reference to
␈↓ ↓H␈↓the entire list of M_FEATURES must be replaced by either APPEND of
␈↓ ↓H␈↓the three new lists, or else by three separate statements. GET_NAME
␈↓ ↓H␈↓is indirectly called, and he has the user name the three new sets of
␈↓ ↓H␈↓features; say he responds by calling them MUSTNOT, MUST, and MAY. The
␈↓ ↓H␈↓system would at this point say to draw an arrow on its graph of code,
␈↓ ↓H␈↓from the function call (# F S_FEATURES) to the new block of code:
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 19␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓ (COND ( (MEMBER F MUSTNOT_PART_OF_M)
␈↓ ↓H␈↓ (MEMBER F S_FEATURES))
␈↓ ↓H␈↓ ( (MEMBER F MUST_PART_OF_M)
␈↓ ↓H␈↓ (NOT (MEMBER F S_FEATURES))
␈↓ ↓H␈↓ ( T (COMMENT THIS "T" REPLACES "MEMBER F MAY_PART_OF_M")
␈↓ ↓H␈↓ NIL))
␈↓ ↓H␈↓ This is now the META:CODE part of the new BEING called #.
␈↓ ↓H␈↓Most of the other parts are taken from its generalization, namely
␈↓ ↓H␈↓CONTRADICTS. During the course of writing this piece, however, some
␈↓ ↓H␈↓of these parts would be slightly changed. For example, its reason
␈↓ ↓H␈↓for existing would be strengthened when the simple MEMBER function
␈↓ ↓H␈↓calls replaced the slow IS_OF_TYPE BEING calls.
␈↓ ↓H␈↓The actual transcript of this part of the dialogue imay be seen on
␈↓ ↓H␈↓pages A5.16 to A5.20. Notice that only a few messages have passed
␈↓ ↓H␈↓back and forth during all this processing. The user has the feeling
␈↓ ↓H␈↓of merely directing, constraining, and watching the activities of a
␈↓ ↓H␈↓busy programmer. Unfortunately, "the user" is not generic; there
␈↓ ↓H␈↓was only one successful user. As was mentioned earlier, PUP6 insists
␈↓ ↓H␈↓on doing structured programming, so its traces are superficially
␈↓ ↓H␈↓similar to macro expansion. Despite this concentration on planning,
␈↓ ↓H␈↓no BEINGs system
␈↓ ↓H␈↓should mistakenly halt so long as any details remain.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 20␈↓ REALITY: EXAMPLES
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓7. REALITY: RESULTS␈↓
␈↓ ↓H␈↓ The character of the dialogue (described in Section 6 and in
␈↓ ↓H␈↓Appendix 5) is, of course, one important measure of the intelligence
␈↓ ↓H␈↓of an AP system. One which asked "What is the first instruction?
␈↓ ↓H␈↓What is the second...?" would be universal but worse than useless. In
␈↓ ↓H␈↓this section are some proposed questions one should ask when
␈↓ ↓H␈↓confronted by a new AP system and some measures of performance of any
␈↓ ↓H␈↓AP system which generates code heuristically from a dialogue.
␈↓ ↓H␈↓ The questions break into two categories. First, one wants to
␈↓ ↓H␈↓know what the system does. Most important, does it write a program?
␈↓ ↓H␈↓If so, how complex is that task, and what is the program
␈↓ ↓H␈↓specification like? How precise must the user be: may he err,
␈↓ ↓H␈↓forget, change his mind? How detailed must his dialogue be? How
␈↓ ↓H␈↓closely does the dialogue determine the details of the final code?
␈↓ ↓H␈↓How does the user know where he is during the dialogue?
␈↓ ↓H␈↓ Quite seriously, an important question is whether the system
␈↓ ↓H␈↓writes a second program. If so, how does it relate to the first one
␈↓ ↓H␈↓synthesized? How much of the AP system is actually used in writing
␈↓ ↓H␈↓␈↓βboth␈↓ programs? One should ask what the full range of programs is
␈↓ ↓H␈↓which the system has successfully synthesized. The dual questions to
␈↓ ↓H␈↓these inquire whether a program may be generated by several different
␈↓ ↓H␈↓dialogues, and what the range of variability is. Similarly, what
␈↓ ↓H␈↓about the target language: is it a parameter? how does it relate to
␈↓ ↓H␈↓the language the system is written in?
␈↓ ↓H␈↓ Does the system modify as well as write code? If so, can
␈↓ ↓H␈↓it modify anybody's, or only those programs it has written itself?
␈↓ ↓H␈↓What is its "style" of programming? One also wishes to know the size
␈↓ ↓H␈↓of the tool as well as the size of the job: How does the system size
␈↓ ↓H␈↓compare to target program size?
␈↓ ↓H␈↓ Efficiency considerations are often the crucial
␈↓ ↓H␈↓pragmatic ones. Economics and current hardware restrict the amount of
␈↓ ↓H␈↓computation which may be done in toto; the expected lifetime of the
␈↓ ↓H␈↓universe restricts us from using the most elegant algorithms; and
␈↓ ↓H␈↓human patience restricts the interaction delay time (to a minute or
␈↓ ↓H␈↓two of real time). One must therefore ask things like
␈↓ ↓H␈↓how much time and space it requires, how long a delay there is
␈↓ ↓H␈↓between user inputs, etc.
␈↓ ↓H␈↓ The second class of questions concerns the theoretical side
␈↓ ↓H␈↓of the AP system. What new ideas is it meant to experiment with? How
␈↓ ↓H␈↓do each of these ideas fare? Does it write its code in the right way
␈↓ ↓H␈↓(does it ask the right questions of the user at just the proper
␈↓ ↓H␈↓times)? How extendable is it: how difficult is it to add new pieces
␈↓ ↓H␈↓of knowledge and to modify old ones? Could it write programs in
␈↓ ↓H␈↓various fields, in various styles, in various sizes?
␈↓ ↓H␈↓ How is knowledge represented internally? Is any of it
␈↓ ↓H␈↓duplicated? If so, what and why? Why doesn't this system solve the AP
␈↓ ↓H␈↓problem?
␈↓ ↓H␈↓ PUP6's answers to most of the these questions are scattered
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 21␈↓ /REALITY: RESULTS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓throughout the earlier sections of this paper. Below are its answers
␈↓ ↓H␈↓to the remaining questions. Although BEINGs can theoretically handle
␈↓ ↓H␈↓user errors, PUP6 was set up expecting that the user would never err
␈↓ ↓H␈↓or forget. He could, after the program was finished, try it out and
␈↓ ↓H␈↓describe how he wished it changed. Occasionally, PUP6 actually make
␈↓ ↓H␈↓the right modifications. For example, INF,
␈↓ ↓H␈↓the simple data storage and retrieval
␈↓ ↓H␈↓system which was written, was supposed to store and retrieve airline
␈↓ ↓H␈↓reservations. After the synthesis is finished, the user tries
␈↓ ↓H␈↓out the program and finds that he is unable to delete more than one
␈↓ ↓H␈↓reservation with any single command. He complains about this, and
␈↓ ↓H␈↓PUP6 modifies the program so that he may specify a pattern, and all
␈↓ ↓H␈↓reservations matching that pattern will be purged. While
␈↓ ↓H␈↓assumptions of absolute
␈↓ ↓H␈↓user reliability are reasonable for little programs,
␈↓ ↓H␈↓they break down when the tasks reach the size of tens of pages and
␈↓ ↓H␈↓hours.
␈↓ ↓H␈↓ Let us briefly describe GI and INF, the second and
␈↓ ↓H␈↓third programs PUP6 synthesized. GI is a simple
␈↓ ↓H␈↓grammatical inference program. It builds up a set a plausible rules,
␈↓ ↓H␈↓rather than enumerating through the space of all grammars. Yet it
␈↓ ↓H␈↓lacks most of the "tricks" of the best g.i. programs. The user
␈↓ ↓H␈↓repeatedly specifies a string, labelled LEGAL, ILLEGAL, or ??. In the
␈↓ ↓H␈↓latter case, GI must print out its guess and accept the correct label
␈↓ ↓H␈↓from the user. In all three cases, it must update its set of
␈↓ ↓H␈↓plausible rules to be at least consistent with all positive and
␈↓ ↓H␈↓negative instances observed. In some versions of GI the user coaxes
␈↓ ↓H␈↓PUP6 to generate, a parse tree may be maintained and inspected; in
␈↓ ↓H␈↓other versions, just a list of the rules used during a parse is kept.
␈↓ ↓H␈↓ INF is a data-retrieval-on-keys system.
␈↓ ↓H␈↓The user repeatedly types
␈↓ ↓H␈↓in a request to insert, delete, or inspect a record (e.g., INSERT:
␈↓ ↓H␈↓PASSENGER Jones FLIGHT 741 FROM SFO TO LAX CARRIER TWA LEAVE 7:15
␈↓ ↓H␈↓ARRIVE 8:00). Any unspecified fields are treated as dont't cares;
␈↓ ↓H␈↓thus the request is matched against entries in the data base.
␈↓ ↓H␈↓ The table below shows how each type of knowledge was used in
␈↓ ↓H␈↓writing the three target programs. All numbers refer to BEINGs.
␈↓ ↓H␈↓ε␈α?␈α?␈α?␈α& ␈↓βU S E D I N S Y N T H E S I Z I N G␈↓ε
␈↓ ↓H␈↓εTYPE OF CF CF CF CF GI INF not Crea Crea Crea Total
␈↓ ↓H␈↓εKNOWLEDGE GI GI INF only only only used -ted -ted -ted BEINGs
␈↓ ↓H␈↓ε INF only only ever in CF in GI in INF
␈↓ ↓H␈↓εProgramming 39 7 5 5 3 1 14 52 27 21 174
␈↓ ↓H␈↓εDomain 0 3 0 9 8 1 5 4 10 3 43
␈↓ ↓H␈↓εTotal 39 10 5 14 11 2 19 56 37 24 217
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 22␈↓ /REALITY: RESULTS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓The high percentage of programming BEINGs which were used in all
␈↓ ↓H␈↓three dialogues is exciting. The three domain-specific BEINGs used
␈↓ ↓H␈↓in both CF and GI sessions indicate that they may be Inductive
␈↓ ↓H␈↓Inference domain specific. They aren't used in INF, which is not an
␈↓ ↓H␈↓inductive inference task. All three deal with partitioning a domain.
␈↓ ↓H␈↓ A specialization of a general programming BEING is listed as
␈↓ ↓H␈↓a programming BEING still (in the CREATED columns of the above
␈↓ ↓H␈↓table.) This is because it remains sufficiently independent to be
␈↓ ↓H␈↓used in many ways, conceivably in many different programs.
␈↓ ↓H␈↓ The style of the synthesized programs is constrained since
␈↓ ↓H␈↓all code must be BEINGs. At a lower level, there are many trivial
␈↓ ↓H␈↓inefficiencies which are passed through a BEING which is to optimize
␈↓ ↓H␈↓LISP programs out of context, at a low level. This BEING is
␈↓ ↓H␈↓vacuous now, but may soon contain a LISP optimizer being written by
␈↓ ↓H␈↓A. Cohn of the SAIL AP group. Low level efficiency was intentionally
␈↓ ↓H␈↓ignored to expedite work on PUP6. Nevertheless, the final code
␈↓ ↓H␈↓produced runs in about the same time as the hand-coded versions
␈↓ ↓H␈↓(e.g., a few seconds per scene for CF). It is several times as long,
␈↓ ↓H␈↓though, since it must be able to answer questions about what it's
␈↓ ↓H␈↓doing as it runs. The protocol version lacked this ability, of
␈↓ ↓H␈↓course.
␈↓ ↓H␈↓ One crude measure of concentration of intelligence is to
␈↓ ↓H␈↓compare the system and target code lengths. Ephemeral numerical
␈↓ ↓H␈↓efficiency data such as this follows. PUP6 is 200 pages long when
␈↓ ↓H␈↓PRETTY-PRINTED, and has synthesized three programs, 7, 20, and 30
␈↓ ↓H␈↓pages long (1, 4, and 6 pages, when coded by hand.)
␈↓ ↓H␈↓ A brute force AP system would require a time roughly
␈↓ ↓H␈↓exponential in target length, so log(time)/target_length (measured
␈↓ ↓H␈↓over several different programs and over several AP systems) is an
␈↓ ↓H␈↓indicator of the intelligence of an AP system. For a good system,
␈↓ ↓H␈↓this number should (i) be small absolutely, and, more importantly,
␈↓ ↓H␈↓(ii) decrease significantly as the target program length increases.
␈↓ ↓H␈↓For a ␈↓βvery␈↓ good program writer, the quantity time/target_length
␈↓ ↓H␈↓stays almost constant. This is not quite achieved by human
␈↓ ↓H␈↓programmers known to the author.
␈↓ ↓H␈↓ PUP6 takes 60 cpu minutes to produce CF. During this time,
␈↓ ↓H␈↓50000 characters get typed out to the user, who reponds with about
␈↓ ↓H␈↓2500 himself. The dialogue lengths are best specified in characters,
␈↓ ↓H␈↓since often the user will supply simply a number or a letter or a
␈↓ ↓H␈↓YES/NO reply. Dividing these by a hundred, one can relate them to
␈↓ ↓H␈↓target and system lengths in lines. Even the character counts are
␈↓ ↓H␈↓very rough, because the format of the AP dialogue can easily be
␈↓ ↓H␈↓varied by a couple orders of magnitude. The mean wait time (between
␈↓ ↓H␈↓the user's input and the next machine output) is several seconds. The
␈↓ ↓H␈↓longest delay between successive user inputs is 1 CPU minute.
␈↓ ↓H␈↓Unfortunately, PUP6 requires 100K to run in, which (with INTERLISP)
␈↓ ↓H␈↓exhausts the virtual memory of the current hardware being used. One
␈↓ ↓H␈↓would lose vast amounts of time by using intermediate storage devices
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 23␈↓ /REALITY: RESULTS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓or by running consecutive communicating jobs.
␈↓ ↓H␈↓ INF was one fifth the size of CF, and took about a seventh
␈↓ ↓H␈↓as long to generate. The dialogue was shorter by a factor of three.
␈↓ ↓H␈↓ Most of the theoretical questions are answered by the very
␈↓ ↓H␈↓design of the system. Its ideational foundation has been discussed.
␈↓ ↓H␈↓When the user sticks close to the original protocol, PUP6 asks the
␈↓ ↓H␈↓right questions at the right times because of its genesis from that
␈↓ ↓H␈↓annotated protocol. The second and third programs were attempted
␈↓ ↓H␈↓only to test its flexibility, and the results were mixed.
␈↓ ↓H␈↓ First the bright side. The increment to PUP6 to enable it to
␈↓ ↓H␈↓write the GI and the INF programs is encouragingly small. Almost all
␈↓ ↓H␈↓the programming-knowledge BEINGs are called in writing more than one
␈↓ ↓H␈↓of the programs. It is now clear that very domain-specific BEINGs
␈↓ ↓H␈↓were in control at the early, high levels. Later, more general BEINGs
␈↓ ↓H␈↓took over, followed by pure programming BEINGs. The middle category
␈↓ ↓H␈↓would include II BEINGs like PARTITION_A_DOMAIN.
␈↓ ↓H␈↓ Regrettably, incrementing the system with new domain-specific
␈↓ ↓H␈↓BEINGs is not feasable for the average user. To add a BEING, he must
␈↓ ↓H␈↓specify all of its relevant parts. Each is inputted either as LISP
␈↓ ↓H␈↓code, as an English sentence PUP6 is capable of interpreting, an
␈↓ ↓H␈↓English sentence PUP6 is just supposed to remember as a canned
␈↓ ↓H␈↓response, or by pointing to a part of an existing BEING and saying
␈↓ ↓H␈↓"like that one, except ...", where the preceding ellipsis must be
␈↓ ↓H␈↓very simple. The interactions between the BEINGs, and the existing
␈↓ ↓H␈↓set of BEINGs, need not be fully understood; but the set of allowable
␈↓ ↓H␈↓assertion templates, the mechanisms by which each part is used, the
␈↓ ↓H␈↓special data types involved (VECTOR, TUPLE), and the precise actions
␈↓ ↓H␈↓of each new part ␈↓βmust␈↓ be known in order to safely inject a new
␈↓ ↓H␈↓BEING.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 24␈↓ /REALITY: RESULTS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓8. THEORY: CONCLUSIONS␈↓
␈↓ ↓H␈↓ The strengths and weaknesses of both BEINGs and PUP6 are
␈↓ ↓H␈↓reviewed.
␈↓ ↓H␈↓This experiment has helped clarify some
␈↓ ↓H␈↓of the potential problems facing
␈↓ ↓H␈↓future AP work.
␈↓ ↓H␈↓ While the number of BEING-parts is
␈↓ ↓H␈↓unimportant, its magnitude (a few tens) may have significance to AP.
␈↓ ↓H␈↓The fact that is isn't ~3 explains the difficulty that ACTORS and
␈↓ ↓H␈↓cyberneticists have; the fact that it isn't ~1000 means that the AP
␈↓ ↓H␈↓problem is tractible.
␈↓ ↓H␈↓ Some of the ideas discussed at the beginning of the paper
␈↓ ↓H␈↓have proven themselves to be useful in getting PUP6 to work.
␈↓ ↓H␈↓Little programs
␈↓ ↓H␈↓can indeed be treated as if their essence is nothing more than a
␈↓ ↓H␈↓collection of answers. The gain from standardization is
␈↓ ↓H␈↓conceptually easy
␈↓ ↓H␈↓addition of pieces to the system; one "merely" adds new BEINGs to the
␈↓ ↓H␈↓community. Their interactions with all the existing BEINGs needn't be
␈↓ ↓H␈↓known in advance. As was discussed in the previous section, the
␈↓ ↓H␈↓actual addition is beyond the power of the untrained user.
␈↓ ↓H␈↓ Indications are that one ␈↓βcan␈↓ locate relevant
␈↓ ↓H␈↓information by organizing the knowledge in a pool, with each piece
␈↓ ↓H␈↓(i) responsible for recognizing when it is relevant and (ii)
␈↓ ↓H␈↓indicating new relevant information indirectly via nondeterministic
␈↓ ↓H␈↓pattern-directed retrievals and assertions. Notice that this puts
␈↓ ↓H␈↓all control structure into the hands of the BEINGs; there is no
␈↓ ↓H␈↓central monitor in PUP6. A BEING's answers may at various times
␈↓ ↓H␈↓indicate that it should be chosen to be in control, and it will then
␈↓ ↓H␈↓take over. Notice also that this relevancy problem is central to
␈↓ ↓H␈↓program maintenance as well as synthesis. It is not clear whether
␈↓ ↓H␈↓or not this really beats the exponential growth of this problem.
␈↓ ↓H␈↓ The fact that target code is in the format of BEINGs limits
␈↓ ↓H␈↓the size of the target programs (≥ one page) and their efficiency (a
␈↓ ↓H␈↓BEING-call is a very slow and intricate process) and of course their
␈↓ ↓H␈↓style. The most startling result -- which should have been forseen --
␈↓ ↓H␈↓was that "intelligent" target code is synthesized. This was mentioned
␈↓ ↓H␈↓casually in the IDEAS section, but its importance is clear: the code
␈↓ ↓H␈↓is self-commenting in the strong sense that the code can answer any
␈↓ ↓H␈↓(of our set of 29) questions about itself. Those which make sense at
␈↓ ↓H␈↓compile-time can be asked then; those which make sense during
␈↓ ↓H␈↓execution may be asked then. For example, CF begins running. After
␈↓ ↓H␈↓several scenes have been processed, CF is waiting for a new one. If
␈↓ ↓H␈↓the user interrupts and asks what it is doing, CF will reply
␈↓ ↓H␈↓"awaiting user input of a brand new scene." One can ask why, how, who
␈↓ ↓H␈↓will be affected, and so on, interrupt as frequently as desired --
␈↓ ↓H␈↓even after each BEING transfers control. The actual questions and
␈↓ ↓H␈↓responses are not very impressive, but they are at least at the same
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 25␈↓ λ⎇THEORY: CONCLUSIONS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓level as those which can be gotten from PUP6 itself as it runs.
␈↓ ↓H␈↓ The set of questions the user was expected to want to ask the
␈↓ ↓H␈↓system is similar to the questions one BEING wants to ask another.
␈↓ ↓H␈↓So when the "nice" user interrupts, his questions are almost always a
␈↓ ↓H␈↓simple retrieval from a property list (a GETP or a composition like
␈↓ ↓H␈↓EVAL␈GETP). When the average user interrupts, his questions are
␈↓ ↓H␈↓often unintelligible to PUP6.
␈↓ ↓H␈↓ Meaningful use of comments proved helpful. As an example, the
␈↓ ↓H␈↓comment at the end of the main outer loop was "COMMENT, INFINITE LOOP
␈↓ ↓H␈↓IN THIS PROG" (see page A5.10) for most of the session. Near the end
␈↓ ↓H␈↓of the session, the CLARIFY_IMPROBABLE_SITUATION BEING recognizes
␈↓ ↓H␈↓this as a warning, works on introducing a breakaway test, and then
␈↓ ↓H␈↓replaces the comment by one indicating that no infinite loop exists
␈↓ ↓H␈↓there anymore (see page A4.4). The advantage to embedding our
␈↓ ↓H␈↓insertions in the code this way is that, at any stage, the user could
␈↓ ↓H␈↓inspect the code and get something meaningful out of the comments
␈↓ ↓H␈↓which were present.
␈↓ ↓H␈↓ The careful bookkeeping actually did eliminate some
␈↓ ↓H␈↓carelessness errors, though it had no effect on user errors or later
␈↓ ↓H␈↓program maintenance directives. These latter processes are less
␈↓ ↓H␈↓ill-defined than blind debugging, and in fact are about the same as
␈↓ ↓H␈↓programming itself [Dijkstra]. The deferral of decisions has the
␈↓ ↓H␈↓nice corollary of reducing (though not minimizing) communication with
␈↓ ↓H␈↓the slow user channel.
␈↓ ↓H␈↓ Synthesizing a new,
␈↓ ↓H␈↓clean target program probably would require
␈↓ ↓H␈↓adding a few domain-independent BEINGs and several domain-specific
␈↓ ↓H␈↓BEINGs, and generalizing several parts of several existing BEINGs.
␈↓ ↓H␈↓Since the dialogues for GI and INF were not studied before-hand,
␈↓ ↓H␈↓their acceptability would have demonstrated the success of the
␈↓ ↓H␈↓system. Most of the existing BEINGs were used in generating these
␈↓ ↓H␈↓new programs, but a few new BEINGs had to be added. Equally
␈↓ ↓H␈↓discouraging, the dialogue to write INF is too long and detailed
␈↓ ↓H␈↓for the task at hand. It also seems that the front end is too
␈↓ ↓H␈↓brittle to allow anyone unfamiliar with the system to easily work
␈↓ ↓H␈↓with it.
␈↓ ↓H␈↓ The need for natural language flexibility stems only
␈↓ ↓H␈↓partially from inter-user differences. A serious and unexpected
␈↓ ↓H␈↓source of conflict here is the amount of inference the user wants
␈↓ ↓H␈↓done. This level is relatively subjective, and may fluctuate rapidly
␈↓ ↓H␈↓even with one user writing one program. Perhaps there should be a
␈↓ ↓H␈↓dial he can set. At one extreme, the system would ask the user to
␈↓ ↓H␈↓verify even the most trivial inductions. At the other extreme
␈↓ ↓H␈↓setting, the system would probably write the target program after
␈↓ ↓H␈↓just a few brief user inputs. The user would then try out one program
␈↓ ↓H␈↓after another, interjecting just one or two comments each time, after
␈↓ ↓H␈↓which the system would come up with the next version. This program
␈↓ ↓H␈↓modification mode seems appropriate for someone ignorant of LISP, who
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 26␈↓ λ⎇THEORY: CONCLUSIONS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓nevertheless has the I/O behavior of his target clearly in mind.
␈↓ ↓H␈↓ Some of the BEING parts proved embarrassingly unnecessary.
␈↓ ↓H␈↓The CO-REQUISITES part was never used. The only activity which had
␈↓ ↓H␈↓to be done concurrently was demon activation. The AFFECTS part was of
␈↓ ↓H␈↓interest to the user occasionally, but never to any BEING. The
␈↓ ↓H␈↓EFFECTS part originally had a twin, describing what would happen if
␈↓ ↓H␈↓each BEING were ␈↓βnot␈↓ called right now. In each case, this was
␈↓ ↓H␈↓merely a trivial restatement of the frame problem. So, like STRIPS
␈↓ ↓H␈↓[Fikes], PUP6 ignores the frame problem: all changes must be
␈↓ ↓H␈↓explicit.
␈↓ ↓H␈↓ Much of PUP6's comments are boring and unnecessary; this was
␈↓ ↓H␈↓felt to be an engineering problem which would be ignored in all but a
␈↓ ↓H␈↓"marketable" AP system. This view was probably incorrect. One of the
␈↓ ↓H␈↓most severe AP problems is having the system inform the user of
␈↓ ↓H␈↓precisely what he should know -- no more nor less. This requires a
␈↓ ↓H␈↓sophisticated user model cleverly interfaced to the current
␈↓ ↓H␈↓programming task.
␈↓ ↓H␈↓ Another problem with large, long dialogues is user error. A
␈↓ ↓H␈↓human has great difficulty keeping "on top" of everything. He may
␈↓ ↓H␈↓get lost, forget, change his mind, or misunderstand. Again, this
␈↓ ↓H␈↓problem was originally considered ignorable, but has shown itself to
␈↓ ↓H␈↓be a limiting practical factor in wide accessability. It was
␈↓ ↓H␈↓necessary to create a forgetful-user demon to prevent anaphoric
␈↓ ↓H␈↓reference to something which, though uniquely determined, hadn't been
␈↓ ↓H␈↓mentioned in an hour! Related to this is the problem of keeping
␈↓ ↓H␈↓the user informed of where he is. PUP6 simulated a continuous display
␈↓ ↓H␈↓of the graph of the current partial program, augmented by static and
␈↓ ↓H␈↓dynamic cursors. This use of dynamic and textual indices seems
␈↓ ↓H␈↓insufficient. The user was still often confused, wishing a section
␈↓ ↓H␈↓referred to not by pointing but rather by a brief, meaningful (to him
␈↓ ↓H␈↓only!) phrase. This may also be one of the major AP problems which
␈↓ ↓H␈↓must be studied further.
␈↓ ↓H␈↓ These worries about large dialogues arise because future AP
␈↓ ↓H␈↓systems are viewed as tools for writing programs which humans simply
␈↓ ↓H␈↓cannot manage currently: viable natural language systems, huge
␈↓ ↓H␈↓operating systems, better AP systems.
␈↓ ↓H␈↓ McCune calls attention to an argument against ever needing a
␈↓ ↓H␈↓system whose target programs will be longer and more complex than the
␈↓ ↓H␈↓system itself. First, empirically, optimizing compilers are viable
␈↓ ↓H␈↓and yet they dwarf almost all the code they generate. Second, as the
␈↓ ↓H␈↓complexity of the transformation increases, the length of a compiler
␈↓ ↓H␈↓increases rapidly. For a truly intelligent AP system, one might be
␈↓ ↓H␈↓willing to tolerate a program several times as large as anything it
␈↓ ↓H␈↓could produce.
␈↓ ↓H␈↓ An argument exists to counter this one. First, one might
␈↓ ↓H␈↓object to drawing an analogy from compilers; many entities are
␈↓ ↓H␈↓capable of producing things more sophistocated than themselves,
␈↓ ↓H␈↓larger than themselves, etc. (consider evolution). Second, it seems
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 27␈↓ λ⎇THEORY: CONCLUSIONS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓that there is a manageable body of information which one needs master
␈↓ ↓H␈↓to do programming [Informal]. Viewed differently [Dijkstra], one can
␈↓ ↓H␈↓write programs as long as he wishes if the program is designed in a
␈↓ ↓H␈↓clean way. Thus the size of AP systems will probably
␈↓ ↓H␈↓level off (albeit huge
␈↓ ↓H␈↓compared to existing programs) even as the size and complexity of
␈↓ ↓H␈↓their generated code continues to increase and, eventually, surpass
␈↓ ↓H␈↓them. Finally, we must consider why we want a good AP system: to
␈↓ ↓H␈↓help us write large programs easily, programs which might be
␈↓ ↓H␈↓unmanageable today. For this reason alone, our AP system must be
␈↓ ↓H␈↓able to deal with programs larger than itself.
␈↓ ↓H␈↓ The whole design of BEINGs is
␈↓ ↓H␈↓oriented toward this large-scale end. One cannot write tiny,
␈↓ ↓H␈↓super-efficient programs using BEINGs, any more naturally than one
␈↓ ↓H␈↓can generate efficient machine code using a high level language.
␈↓ ↓H␈↓A BEINGs system might simulate this activity, but it would be as
␈↓ ↓H␈↓awkward and opaque as if they were asked to simulate volleyball. By
␈↓ ↓H␈↓relinquishing more and more control to the computer language
␈↓ ↓H␈↓environment, the programmer sacrifices specialization of the final
␈↓ ↓H␈↓code for ease of constructing it and for its greater size and
␈↓ ↓H␈↓complexity.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 28␈↓ λ⎇THEORY: CONCLUSIONS
␈↓ ↓H␈↓␈↓αBEINGS␈↓␈↓ U␈↓βDoug Lenat␈↓
␈↓ ↓H␈↓␈↓↓9. ACKNOWLEDGEMENTS␈↓
␈↓ ↓H␈↓ There are, of course, countless ideas embodied in any
␈↓ ↓H␈↓concrete project. Sweeping philosophical assumptions are made simply
␈↓ ↓H␈↓in trying to do Automatic Programming [McCarthy]. Any
␈↓ ↓H␈↓Program-Understanding Program should include the best parts of all
␈↓ ↓H␈↓the best old ideas. PUP6 relies on concepts gleaned from Actors
␈↓ ↓H␈↓[Hewitt], Demons [Charniak], heterarchy [Reddy], structured
␈↓ ↓H␈↓programming [Dijkstra], assertional data bases and flexible data
␈↓ ↓H␈↓types [Reboh], pattern-directed invocation of procedural knowledge
␈↓ ↓H␈↓[Winograd], the paradigm of dialogue [Floyd], and studies on program
␈↓ ↓H␈↓specification techniques [Green]. Of course this list is incomplete;
␈↓ ↓H␈↓sophisticated ideas are captured in the languages themselves: QLISP
␈↓ ↓H␈↓[Reboh], INTERLISP [Teitelman], LISP [McCarthy2], and English
␈↓ ↓H␈↓[Anonymous]. To this rich store, one may achieve new heights merely
␈↓ ↓H␈↓by synergy.
␈↓ ↓H␈↓ Any success of the BEINGs project, as well as the precursor
␈↓ ↓H␈↓PUP programs [Green] is due in large measure to the
␈↓ ↓H␈↓creative energy of C. Cordell Green. I have
␈↓ ↓H␈↓also drawn upon discussions with
␈↓ ↓H␈↓D. Barstow, B. McCune, D. Shaw, E.
␈↓ ↓H␈↓Sacerdoti, L.
␈↓ ↓H␈↓Steinberg, and R. Waldinger. The generosity of SRI, in providing
␈↓ ↓H␈↓computer time and language consultations, should not go unmentioned.
␈↓ ↓H␈↓Also valuable were the critical readings of this paper by R. Davis
␈↓ ↓H␈↓and T. Winograd.
␈↓ ↓H␈↓␈↓∧Fourth Draft .... October 17, 1974␈α?␈α?␈α?␈α?␈α→page 29␈↓
h